joppotjoppotコピペで絶対動く。2015年8月15日Tweet概要みなさんこんにちはcandleです。今回は前回に引き続き、gemの作成をやっていきます。gemのconfigとは恐らく一般的に以下の様な状況の時に使う事になると思います。gemのプログラム上、デフォルトの値があるけれども、場合によってはrailsアプリケーションで自由に設定できるなどの場合です。configはgemの中に初期の値が設定されており、もしも、railsアプリケーションの中にそのgemのconfigファイルが作成されていなければ、そちらを参照し、もしも、configファイルがrailsアプリケーションの中にあれば、そちらを参照する様に作ります。前提configファイルを作成するなんども、記述しますが、gemの記述はこれといった決まった書き方があるわけではなく、開発者それぞれなのです。ここで紹介するはその1つだと思ってください。configファイルは一般に以下に作成します。lib/gem名/config.rbです。このシリーズのサンプルgemなら以下の様になります。lib/good_item/config.rbconfig.には以下の記述をします。endendサンプルでは以下の様にして、色を設定します。endendこれで設定は良いでしょう。初期設定ではcolorはblueと設定しました。helperを作りましょう。helperの説明では無いので、細かい所は省きます。Helperの中に以下の関数を作成します。endendこれで適当なconfigの値を使ったヘルパーが出来ました。GoodItem.config.colorというのがconfigで設定された値です。engineに設定を書き込むconfigとhelperは書いただけではrailsでは使用できません。そこで、gemを使用する為にengineに設定を記述します。engine.rbにconfig.rbの設定を記述します。一般に以下の様に書きます。endendサンプルでは以下の様に書きます。‘good_item/config’でconfig.rbを呼び出します。GoodItem::Config.newendself.config関数は「Gem名.config.任意の変数」を参照できる様にする為の関数です。サンプルで作成したcolorを参照するなら「GoodItem.config.color」で値を参照できます。block_given?endself.configure関数はrailsアプリケーションのconfig/initializerフォルダの中でgemの中で定義されたconfig.rbを上書きする時に使用する関数です。する事で、gemの中のcolorの変数をrailsアプリケーションの中で変更する事が可能になります。helperの設定は以下の様になります。詳しい事は以下の記事を参照してください。endend以上で、gemの設定は終わりました。railsアプリケーション上で動かす予め、作成したgemを読み込んだrailsアプリケーションを用意します。helperのcputsを使ってみます。railsを起動して、サイトにアクセスするとログに青色のputs出力がでます。上手く動作していますね。railsアプリケーション側でgemのconfigを設定するさて、初期設定のblueは表示出来ましたが、それだけだと拡張性が無いので、不便です。railsアプリケーション側でcolorの色を設定して、任意の色が表示できると便利ですよね。今回作成したcputs関数の中ではblueとredしか色対応してないので、redをrailsアプリケーション側で設定していみましょう。railsアプリケーションのconfig/initializersフォルダの中に以下のファイルを作ります。ファイル名は一般に「そのgem名.rb」にします。generatorを使用してrailsアプリケーションに用意するのですが、それは次回以降解説します。gemのconfigファイルを作成します。config/initializers/good_item.rb一般に設定ファイルの書き方は以下の様にします。任意の値end例えば、今回のサンプルの場合は以下の様に記述します。color変数を上書きしたいので以下の様にします。"red"endここで使われているconfigure関数はgemのengine.rbで定義したself.configure関数を使っています。上手く行っていれば、これでcputsの出力結果が赤になります。サーバを再起動して、アクセスしてみると、ログの色が赤になっています。まとめconfigの使い方の基本的なところをやりました。いかがでしたでしょうか。configは慣れると簡単ですが、慣れないと難しいですよね。この記事を機会に試してみましょう。スポンサードリンク「為になったなぁ」と思ったら、シェアお願いします。コメントをキャンセルメールアドレスが公開されることはありません。みなさんこんにちはcandleです。比較的難しいrailsからs3に画像をアップロードする方法を試してみましょう。みなさんこんにちはcandleです。Sansのcssの書き方を紹介します。Sansの特徴はフォントの太さを1から9段階まで変えられることです。みなさんこんにちはcandleです。最近はwordpressの開発を行っており、そこで、試行錯誤したwp_queryを使った記事一覧の取得の仕方を紹介します。みなさんこんにちはcandleです。helperの作り方です。helperというのは様はgemにすることで便利になる関数を作るとというイメージです。みなさんこんにちはcandleです。今回はReactでコメントなどに投稿されたURLからリンクを生成する方法を紹介します。URLからリンクの自動生成は結構危険です。Sansフォントウェイトのcss書き方まとめプロフィールベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。環境設定スポンサードリンクjoppotコピペで絶対動く。