class GemFresh::Missing
Public Class Methods
new()
click to toggle source
# File lib/gem_fresh/missing.rb, line 4 def initialize parse_gemfile end
Public Instance Methods
check_for_missing_gems!()
click to toggle source
# File lib/gem_fresh/missing.rb, line 8 def check_for_missing_gems! if missing_gems.any? message = "The following gems are in your Gemfile but not in your gem_fresh.rb file:\n" missing_gems.each do |gem_name| message << " #{gem_name}\n" end raise message end end
Private Instance Methods
gem_names()
click to toggle source
# File lib/gem_fresh/missing.rb, line 32 def gem_names @gem_lines.map do |gem_line| gem_line.split.second.gsub(/[^A-Za-z0-9\-_]/, '') end end
gemfresh()
click to toggle source
# File lib/gem_fresh/missing.rb, line 44 def gemfresh GemFresh::Config.config end
missing_gems()
click to toggle source
# File lib/gem_fresh/missing.rb, line 20 def missing_gems missing_gems = [] gems_from_gemfresh = gemfresh.all_gems gem_names.each do |gem_from_gemfile| if not gems_from_gemfresh.include?(gem_from_gemfile) missing_gems << gem_from_gemfile end end missing_gems.reject!{|g| g == 'rails'} missing_gems end
parse_gemfile()
click to toggle source
TODO: we shouldn't be so tied to Rails in future
# File lib/gem_fresh/missing.rb, line 39 def parse_gemfile gemfile = File.join(Rails.root, 'Gemfile') @gem_lines = IO.readlines(gemfile).select{|line| line =~ /\A\s*gem/ } end