Instradamento Kemal che reindirizza un sottoalbero

Questo frammento di codice mostra come reindirizzare un intero sottoalbero e rimuovere la prima parte del sottoalbero. Questo può essere utile, per esempio, quando si hanno collegamenti esterni che fanno riferimento a lingue diverse (per esempio /de /fr /it) e percorsi di contenuto in essi, e si vuole servire tutto dagli stessi endpoint. Crystal Lang...

Weiterlesen

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