Crystal

Crystal書いてて気づいたこと

今日はuser agent parserのruby版をcrystalに移植していた。 github.com crystalはv0.18.7を使っているのだけど書いてて気づいたことがあるのでメモ not nilの推論はインスタンス変数には効かない crystalは型に厳しいです。変数fooがStringあるいはNil型で…

const_getができないけど文字列からクラスを取得したい

環境 $ crystal version Crystal 0.15.0 [0f62400] (Fri Apr 1 16:59:50 UTC 2016) $ crenv --version crenv 1.0.0-16-g534d2c6 問題点 CLIを作ってるときにサブコマンドを1クラスにしたい 入力に合わせてサブコマンドクラスのインスタンスをとってきたい で…

Crystalでnot nilなgetterを定義する

環境 $ crystal version Crystal 0.15.0 [0f62400] (Fri Apr 1 16:59:50 UTC 2016) $ crenv --version crenv 1.0.0-7-g578eb0a 問題点 適当に getter や property を生やしてるとNot Nilであることをコンパイラが検知できなくて困る 対応策 getter に型定義…