class Pessimize::Pessimizer

Attributes

file_manager[RW]
gemfile[RW]
lock_parser[RW]
options[RW]

Public Class Methods

new(file_manager, options) click to toggle source
# File lib/pessimize/pessimizer.rb, line 7
def initialize(file_manager, options)
  self.file_manager = file_manager
  self.options = options
  self.lock_parser = GemfileLockVersionParser.new
end

Public Instance Methods

run() click to toggle source
# File lib/pessimize/pessimizer.rb, line 13
def run
  collect_gems_and_versions
  update_gem_versions
  write_new_gemfile
  puts "~> written #{gemfile.gems.length} gems to Gemfile, constrained to #{options[:version_constraint]} version updates\n\n"
end

Protected Instance Methods

collect_gems_and_versions() click to toggle source
# File lib/pessimize/pessimizer.rb, line 27
def collect_gems_and_versions
  self.gemfile = Gemfile.new(file_manager.gemfile_contents)
  lock_parser.call File.open(file_manager.gemfile_lock)
end
sep(num = 1) click to toggle source
# File lib/pessimize/pessimizer.rb, line 23
def sep(num = 1)
  "\n" * num
end
update_gem_versions() click to toggle source
# File lib/pessimize/pessimizer.rb, line 32
def update_gem_versions
  VersionMapper.new.call(gemfile.gems, lock_parser.versions, options[:version_constraint])
end
write_new_gemfile() click to toggle source
# File lib/pessimize/pessimizer.rb, line 36
def write_new_gemfile
  File.delete(file_manager.gemfile)
  File.open(file_manager.gemfile, 'w') do |f|
    f.write gemfile.to_s
  end
end