Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Ruby・Railsツールの環境設定を高速化し、一貫性を持たせる方法

Railsアプリをいくつか作っていると、自然と自分なりの好みの作業スタイルが固まってくるものです。例えば、Railsコンソールでは常にawesome_printを使いたい、rails newで生成するプロジェクトにはminitestではなくrspecを使いたい、といった具合です。

コマンドを実行するたびにこれらの設定を指定するのは、確かにそれほど大きな手間ではありません。しかし、うっかり忘れてしまうことも多いものです。そして、自分が指示したつもりのことがコンピュータに実行されないときほど腹立たしいものはありません。

$ rails new best_app_ever
^C (ため息...)
$ rm -r best_app_ever
$ rails new best_app_ever --template=my_template

実は、もっと簡単な方法があります。ほんの少しの工夫で、これらのコマンドがあなたの設定を記憶してくれるようになり、いちいち指定する必要がなくなります。

.rcファイルで設定を保存する

多くのRubyツールは、.rcファイルを使って設定を保存できるシンプルな仕組みを備えています。

.rcファイルはホームディレクトリに置かれます。

$ ls ~/.*rc
.bashrc		.irbrc		.screenrc
.gemrc		.railsrc	.zshrc

これらのファイルは、gemirbrailsといったコマンドがあなたの設定を読み込むための場所となります。ここでは、ぜひ活用したい.rcファイルを3つ紹介します。

.irbrc — コンソールを自分好みに

rails consoleを開いたとき、すべてのオブジェクトがデフォルトでawesome_print形式で整形表示されたら便利だと思いませんか。セッションのたびにAwesomePrint.irb!と入力してもよいのですが、~/.irbrcファイルに次の2行を追加しておけば済みます。

require "awesome_print"
AwesomePrint.irb!

次回rails consoleを起動したときから、オブジェクトは自動的に見やすい形式で表示されるようになります。

また、.irbrcは、オブジェクトを操作するときに役立つちょっとした便利メソッドを置いておく場所としても最適です。

require "awesome_print"
AwesomePrint.irb!

# klassのインスタンスメソッドのうち、
# Objectにすでに定義されているものを除外して返す
def m(klass)
  klass.public_instance_methods - Object.public_instance_methods
end
~/Source/rcfiles jweiss$ bin/rails c
Loading development environment (Rails 4.1.1)
irb(main):001:0> m ActiveRecord::Base
[
    [  0]   [](attr_name)        ActiveRecord::Base (ActiveRecord::AttributeMethods) (unbound)
    [  1]   []=(attr_name, value) ActiveRecord::Base (ActiveRecord::AttributeMethods) (unbound)
    [  2]   _commit_callbacks()
... 約200個以上のメソッド...

このように自分の環境を少しずつカスタマイズしていくと、使っているライブラリが単なる「使う道具」ではなく、自分のものだと感じられるようになります。

.gemrc — gemのインストールを高速化

RubyGemsにも、gemの扱いを便利にするための専用の.rcファイルが用意されています。多くの開発者は、rdocとriのドキュメント生成をスキップしてインストールを大幅に高速化する目的で.gemrcを利用しています。

gem: --no-document

しかし、できることはこれだけではありません。.gemrcで調整できる値は他にもあります。例えば、社内のgemサーバーなどを参照先に追加する:sources:や、エラー発生時に完全なバックトレースを表示する:backtrace:などが便利です。

gem: --no-document
:backtrace: true
:sources:
- https://my.internal.gem.server
- https://rubygems.org

このファイルに設定できるその他の項目については、gem environmentコマンドの公式ドキュメントを参照してください。

.railsrc — rails newのオプションを自動化

Rails 3以降、デフォルトのRailsスタックに依存しないアプリケーションを簡単に生成できるようになりました。例えば、minitestを使わないアプリを作りたい場合(後でrspecを導入したい場合など)は、次のようにするだけです。

$ rails new my_awesome_app --skip-test-unit

また、勤務先に独自のプロジェクトテンプレートがあるケースもあるでしょう。

$ rails new my_awesome_corporate_app --template=https://example.com/my_app_template

一度特定のRailsスタックに慣れてしまうと、新しいプロジェクトでも同じ構成を使いたくなるものです。ところが、アプリを生成するたびにこれらのパラメータを付け忘れてしまうのはよくある失敗です。そこで活躍するのが.railsrcファイルです。よく使うオプションをあらかじめ書いておきましょう。

--template=https://example.com/my_app_template
--database=postgresql

これで、毎回正しいパラメータ付きでrails newを実行できるようになります。さらに、特定のプロジェクトだけ設定を上書きしたい場合は、--no-skip-test-unitのような逆方向のオプションをコマンドラインで指定すれば対応できます。

開発環境を自分好みに仕上げよう

ほんの少し事前に設定を済ませておくだけで、開発環境はぐっと居心地の良いものになります。意図したオプションを付け忘れたままコマンドを実行してしまうストレスもなくなり、正しいオプションを探すためにいちいちドキュメントを漁る必要もなくなります。そして何より、本来一番楽しいコードを書く作業に、すぐに取り掛かれるようになるのです。

  1. Windows 11の壁紙を無料ダウンロード!HD・4K対応の高品質Bloom壁紙まとめ

    Windows 11は、リリース以来今もなお大きな話題となっているOSです。「自分のPCにインストールできるのか」「アップグレードする価値はあるのか」といった疑問を持つ方も多いでしょう。新しいOSの魅力のひとつといえば、やはり美しいデフォルト壁紙。Windows 11も例外ではなく、あの特徴的な「Bloom」壁紙を手に入れたいという声が多く聞かれます。 この記事では、Windows 11のBloom壁紙をはじめとする公式壁紙を、さまざまなカラーバリエーションでダウンロードできる安全な配布元をご紹介します。 Windows 11の壁紙をダウンロードするには すべての人がWindows 11へアッ

  2. CleverPDF徹底解説:PDF変換・編集ツールがこれひとつで完結するワンストップサービス

    本記事はCleverPDF提供のスポンサード記事です。記事の内容および見解は、編集の独立性を保った執筆者自身のものです。 PDFはなぜ「万能フォーマット」と呼ばれるのか 異なるOSやデバイス間でドキュメントをやり取りするとき、最も安心できるのがPDFファイルです。Windows、Mac、Linux、さらにはスマートフォンやタブレットなど、環境を問わず手間なく閲覧できるため、ビジネスでも個人利用でも広く標準となっています。一方、Microsoft OfficeやiWorkなどで作成したファイルは、相手側の環境によってレイアウトが崩れたり、そもそも開けなかったりすることも少なくありません。 だか