これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

script/generator続き Rails::Generator::NamedBase

Generatorを作成するときに、Rails::Generator::NamedBaseを継承するとnameという属性が使えるらしい。name属性は例えば、

$ ruby script/generator my_gen hoge

としたときの"hoge"が格納される変数。さっそく、前回のコードを修正してみる。

require 'rbconfig'

class MyGenGenerator < Rails::Generator::NamedBase

  def initialize(runtime_args, runtime_options = {})
    super
  end

  def manifest
    record do |m|
      m.directory File.join('foo', name) # (1)
      m.file 'bar.txt', File.join('foo', name, 'bar.txt') # (2)
    end
  end

end

(1)のとこを「foo/#{name}というディレクトリを作成する」に変更。
(2)のとこを「templates/bar.txtをfoo/#{name}/bar.txtにコピーする」に変更。
実行結果。

$ ruby script/generate my_gen hoge
      create  foo/hoge
      create  foo/hoge/bar.txt

でけた。

関連エントリ