class Pitman

Constants

DEFAULT_GEMS

Public Class Methods

collect(root) click to toggle source
# File lib/pitman.rb, line 30
def self.collect(root)
  used = used_gems(root)
  all  = gems_list

  all - (used + DEFAULT_GEMS)
end
gems_list() click to toggle source
# File lib/pitman.rb, line 5
def self.gems_list
  `gem list`.split("\n").collect { |str| str.split(" (").first.strip }
end
parse(file) click to toggle source
# File lib/pitman.rb, line 9
def self.parse(file)
  File.read(file)
    .split("\n")
    .select  { |str| str =~ /\(.+\)/ }
    .collect { |str| str.split(" ").first }
    .uniq
end
used_gems(root) click to toggle source
# File lib/pitman.rb, line 17
def self.used_gems(root)
  dirs = root.children.select { |c| c.directory? }

  gems = dirs.collect do |dir|
    Dir.chdir(dir) do
      next unless File.exist?('Gemfile.lock')
      parse('Gemfile.lock')
    end
  end

  gems.flatten
end