A Day in the Life

Gemfile のひな形を作りましょうか

Gemfile のひな形を作りましょうか

Gemfile で管理されてないアプリ・ライブラリを bundler 対応させて Gemfile を作るのいがいとめんどうですね。ひな形を適当に作りましょうか。

bunlder 本体でなんかできそうな気もするんだけど…。

gem list から作る

#!ruby
re = %r{(.+?)\s+\((.+)\)}
`gem list`.split("\n").each do |gem|
  _, package, versions = gem.match(re).to_a
  if package
    versions.split(/,\s*/).each do |version|
      puts "gem '#{package}', '= #{version}'"
    end
  end
end

現在使ってるライブラリやアプリから作る

ライブラリがあらかたロード終わったタイミングで実行する。at_exit にしこむのもアリ。

puts Gem.loaded_specs.map {|_, spec| "gem '#{spec.name}', '= #{spec.version.to_s}'" }.sort.join("\n")