Usare i moduli in cristallo

Man mano che la vostra applicazione cresce, vorreste passare da un grande file .cr alla separazione del vostro codice in file più piccoli. Potete usare require dal vostro file .cr principale per aggiungere codice da altri file: require "./tools/*" Questa dichiarazione aggiungerà codice dalla directory tools, relativa al vostro file .cr principale. Questo...

Weiterlesen

Eccezione: Citazione inattesa a 1:2 (CSV::MalformedCSVError) Crystal

Mentre cercavo di analizzare un file di pagamento Amazon, mi sono imbattuto in questo particolare problema: Exception: Citazione inattesa a 1:2 (CSV::MalformedCSVError) Il motivo: Amazon Pay codifica i suoi file in UTF-8 con BOM. Il BOM è un marcatore opzionale (nei file UTF-8). Puoi vederlo con lo strumento xxd per esempio xxd apolish_amazon_2018DecMonthlyTransaction.csv | less Il...

Weiterlesen

Installare Crystal su Docker: come aggiungere il repository Crystal a Docker nel Dockerfile

Dockerfile (estratto) ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn RUN apt-get update && apt-get install -y \ software-properties-common \ build-essential \ libevent-dev \ libssl-dev \ libxml2-dev \ libyaml-dev \ libgmp-dev \ libreadline-dev \ apt-transport-https \ iputils-ping \ git \ aptitude \ nano \ openssh-server \ && apt-key adv -keyserver keys.gnupg.net -recv-keys 09617FD37CC06B54 \& add-apt-repository 'deb https://dist.crystal-lang.org/apt crystal...

Weiterlesen

Crystal libevent-2.0.so.5: impossibile aprire un file oggetto condiviso

Oggi ho aggiornato la mia Ubuntu alla 18.04. La compilazione di un file con Crystal mi dà il seguente errore: stderr: /root/.cache/crystal/usr-share-crystal-src-ecr-process.cr/macro_run: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory La libreria in questione, libevent-2.0.so.5 è stata sostituita da libevent-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6 Crystal è ovviamente consapevole di questo...

Weiterlesen

Crystal e Alpine su Raspberry Pi

Mettere insieme due tecnologie interessanti: Alpine Linux - una distribuzione Linux di piccole dimensioni e orientata alla sicurezza Crystal - un linguaggio compilato con una bella sintassi (simile a Ruby) sul Raspberry Pi (armhf / ARMv6, che supporterebbe anche il Pi Zero W) non è possibile attualmente, al 21.12.2018. Non c'è (almeno non...

Weiterlesen

Cristallo: lingua di cristallo Traccia trovata duplicata

max@morpheus:~/crystal/taxgod$ crystal run src/taxgod.cr Unhandled exception: Trovata traccia duplicata 'vat-correction' (Radix::Tree::DuplicateError) da lib/radix/src/radix/tree.cr:0:11 in 'add' da lib/radix/src/radix/tree.cr:149:11 in 'add' da lib/radix/src/radix/tree.cr:149:11 in 'add' da lib/radix/src/radix/tree.cr:108:9 in 'add' da lib/kemal/src/kemal/route_handler.cr:49:7 in 'add_to_radix_tree' da lib/kemal/src/kemal/route_handler.cr:21:7 in 'add_route' da lib/kemal/src/kemal/dsl.cr:12:1 in 'post' da src/vatcorrection.cr:26:2 in '__crystal_main' da /usr/share/crystal/src/crystal/main.cr:97:5 in 'main_user_code' da /usr/share/crystal/src/crystal/main.cr:86:7 in 'main' da /usr/share/crystal/src/crystal/main.cr:106:3 in 'main'...

Weiterlesen