Railsアプリ内の定数を管理するgem ‘Constantinopolis’


Ruby on Railsアプリケーションを開発していると、グローバルで有効な定数を定義することがよくありますよね。そんなときに便利なgemを開発しました。名前はConstantinopolis(コンスタンティノーポリス)です。内容としては・・ええ、明らかにsettingslogicにインスパイアされました。

Constantinopolis

Constantinopolisの大きな特長は、Javascript内でも定義した定数にアクセスできるという点です。使用方法などはGithubを見てもらえれば分かるかと思いますが、私は常にキャッチャーな人間でありたいため、Railsに導入する方法を日本語でもご紹介しておきます。

インストール

Gemfile に以下の行を記入します。(Bundler使ってますよね・・・?)

そしてインストール。

使用方法

まず、ご自身の定数クラスを定義する必要があります。 config/initializers 内に任意のrbファイルを作成します。今回は constantinopolis.rb という名前にでもしておきましょう。

次に、指定したパスに定数用yamlファイルを作成します。ERB記述OKです。また、値をネストして定義することも可能です。

これにて設定完了です。Rails内の至るところからこの定数にアクセスできます。

以下はビューからアクセスする場合のサンプルコードです。Javascriptからアクセスするためには、1行目の通り <%= javascript_tag 定数クラス.js_code %> ヘルパーを呼び出しておく必要があります。(しょっちゅうアクセスするのであれば、 app/views/layouts/application.html.erb で呼び出しておけば良いかと思います)

当画面にブラウザでアクセスしてみると・・・

index

ナイスですね!

是非ともご近所お誘い合わせの上、使ってみてくださいませ! ツッコミ・フォーク大歓迎です。

関連する記事