Trattare con NIL in JSON::Any in Crystal Lang

Una delle sfide quando si sviluppa con Crystal è che non è così indulgente sui tipi di dati come, diciamo, Python o Ruby. nil vi terrà occupati. Il seguente messaggio di errore: cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 può essere risolto da: # cast to string, poi controlla se è nil se...

Weiterlesen

mongo_orm nome personalizzato per la collezione

mongo_orm determinerà automaticamente il nome per la vostra collezione usando il nome del modulo e della classe, e aggiungendo una "s". Nei casi in cui vuoi dare un nome alla tua collezione, puoi semplicemente fare così: class PapiTest < Mongo::ORM::Document collection_name "Buster" field test : String end get "/" do pt = PapiTest.new pt.test = "I want...

Weiterlesen

Istruzioni per aggiungere un utente a un database mongo per mongo_orm

Non volete che la vostra applicazione web acceda al database usando il vostro utente amministratore del database. Inoltre vuoi che acceda solo ad un database specifico - forse hai altri database in esecuzione nella tua istanza di mongo. Prerequisiti: mongo_orm si aspetta la configurazione del database come variabili d'ambiente o come file config/database.yml nel tuo progetto. Il file config/database.yml...

Weiterlesen

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

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 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

Il linguaggio di programmazione Crystal e le codifiche

Recentemente mi sono trovato a lottare con la corretta impostazione delle codifiche dei file nel linguaggio di programmazione Crystal, ecco perché lo documento qui. Crystal per default legge e scrive i file in UTF-8. A volte incontrerete file codificati, ad esempio, nella pagina di codice Windows-1252. (Questa è la pagina di codice dell'Europa occidentale, usata ad esempio per il tedesco...

Weiterlesen