Utilisation de modules en cristal

Au fur et à mesure que votre application se développe, vous souhaitez passer d'un gros fichier .cr à une séparation de votre code en fichiers plus petits. Vous pouvez utiliser require depuis votre fichier .cr principal pour ajouter du code provenant d'autres fichiers : require "./tools/*" Cette instruction ajoutera le code du répertoire tools, par rapport à votre fichier .cr principal. Cela va...

Weiterlesen

La portée d'ecr dans crystal : ou comment passer des variables et des objets dans les modèles ECR ?

En tant que débutant dans le langage Crystal, j'ai encore du mal à me faire une idée de certains de ses concepts et à me familiariser avec le codage en Crystal. Lorsque je rencontre des problèmes difficiles, que je résous ou que je commence à comprendre, j'en parle sur mon blog, afin que d'autres puissent en profiter - comme le manque de documentation...

Weiterlesen

Exception : Une citation inattendue à 1:2 (CSV::MalformedCSVError) Crystal

En essayant d'analyser un fichier de paiement Amazon, je suis tombé sur ce problème particulier : Exception : Unexpected quote at 1:2 (CSV::MalformedCSVError) La raison : Amazon Pay encode ses fichiers en UTF-8 avec BOM. Le BOM est un marqueur optionnel (dans les fichiers UTF-8). Vous pouvez le voir avec l'outil xxd par exemple xxd apolish_amazon_2018DecMonthlyTransaction.csv | less Le...

Weiterlesen

Installation de Crystal sur Docker : comment ajouter le référentiel Crystal à Docker dans le Dockerfile

Dockerfile (extrait) 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 : ne peut pas ouvrir le fichier d'objet partagé

Aujourd'hui, j'ai mis à jour mon Ubuntu en 18.04. La compilation d'un fichier avec Crystal me donne l'erreur suivante : 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 bibliothèque en question, libevent-2.0.so.5 a été remplacée par libevent-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6 Crystal est bien sûr au courant...

Weiterlesen

Crystal & Alpine sur le Raspberry Pi

Réunir deux technologies intéressantes : Alpine Linux - une distribution Linux de petite taille et orientée sécurité Crystal - un langage compilé avec une belle syntaxe (similaire à Ruby) sur le Raspberry Pi (armhf / ARMv6, qui supporterait également le Pi Zero W) n'est pas possible actuellement, au 21.12.2018. Il n'y a pas (du moins pas...

Weiterlesen

Crystal : langage cristal Duplicate trail found

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

Weiterlesen