class Unbundler::GemList

Public Class Methods

new(keep_list) click to toggle source
# File lib/unbundler/gem_list.rb, line 6
def initialize(keep_list)
  @keep_list = KeepList.new(keep_list || [])
  @global_keep_list = KeepList.new(global_keep_list)
end

Public Instance Methods

each() { |name| ... } click to toggle source
# File lib/unbundler/gem_list.rb, line 11
def each
  gems_to_unbundle.each do |gem|
    yield gem.name
  end
end

Private Instance Methods

bundled_gems() click to toggle source
# File lib/unbundler/gem_list.rb, line 43
def bundled_gems
  @bundled_gems ||= Bundler.load.specs
end
create_default_keep_list() click to toggle source
# File lib/unbundler/gem_list.rb, line 23
def create_default_keep_list
  keep_list_file = File.expand_path("~/.unbundler_keep")
  File.open(keep_list_file, "w") do |keep_list|
    keep_list.puts "unbundler"
    unbundler_runtime_dependencies.each do |gem|
      keep_list.puts  "#{gem.name} '#{gem.requirement.to_s}'"
    end
  end
end
gems_to_unbundle() click to toggle source
# File lib/unbundler/gem_list.rb, line 48
def gems_to_unbundle
  @gems_to_unbundle ||= bundled_gems.reject { |gem| in_keep_list?(gem) }
end
global_keep_list() click to toggle source
# File lib/unbundler/gem_list.rb, line 33
def global_keep_list
  keep_list_file = File.expand_path("~/.unbundler_keep")
  create_default_keep_list unless File.exist?(keep_list_file)
  File.open(keep_list_file).readlines.map(&:chomp).map(&:strip)
end
in_keep_list?(gem) click to toggle source
# File lib/unbundler/gem_list.rb, line 39
def in_keep_list?(gem)
  @keep_list.include?(gem) || @global_keep_list.include?(gem)
end
unbundler_runtime_dependencies() click to toggle source
# File lib/unbundler/gem_list.rb, line 19
def unbundler_runtime_dependencies
  Gem::Dependency.new("unbundler").to_spec.runtime_dependencies
end