class Freezer
Public Class Methods
new(gemfile_path)
click to toggle source
# File lib/frozen_gems/freezer.rb, line 4 def initialize(gemfile_path) @gemfile_path = gemfile_path @tmpfile_path = tmpfile_path end
Public Instance Methods
cp_gemfile()
click to toggle source
# File lib/frozen_gems/freezer.rb, line 38 def cp_gemfile return unless gemfile? FileUtils.cp(@gemfile_path, @tmpfile_path) end
overwrite()
click to toggle source
# File lib/frozen_gems/freezer.rb, line 15 def overwrite return unless gemfile? && tmpfile? gemfile = File.open(@gemfile_path) tmpfile = File.open(@tmpfile_path, 'w') regex = /^\s*gem ['"]([-\w]+)['"](,.*)?/ gems_hash = Parser.new(@gemfile_path).unfrozen_gems_hash gemfile.each do |line| name = line.scan(regex).flatten.first if !name.nil? && !gems_hash[name].nil? line.chomp! << ", '#{gems_hash[name]}'\n" end tmpfile.write(line) end gemfile.close tmpfile.close end
overwrite_gemfile()
click to toggle source
# File lib/frozen_gems/freezer.rb, line 9 def overwrite_gemfile cp_gemfile overwrite replace_gemfile end
replace_gemfile()
click to toggle source
# File lib/frozen_gems/freezer.rb, line 43 def replace_gemfile if gemfile? && tmpfile? FileUtils.rm_f(@gemfile_path) FileUtils.mv(@tmpfile_path, @gemfile_path) end end
tmpfile_path()
click to toggle source
# File lib/frozen_gems/freezer.rb, line 34 def tmpfile_path File.join(File.dirname(@gemfile_path), TMPFILE) end