class GemOutdatedChecker::GemList

Public Class Methods

new() click to toggle source
# File lib/gem_outdated_checker.rb, line 11
def initialize
  @exclude_gems = configs[:exclude_gems] || []
  @bundle_path = configs[:bundle_path] || 'bundle'.freeze
end

Public Instance Methods

outdated_gems() click to toggle source
# File lib/gem_outdated_checker.rb, line 16
def outdated_gems
  bundle_outdated unless @execed
  @outdated_gems ||= @out.split("\n").grep(/\*/)
end
update_pending_gems() click to toggle source
# File lib/gem_outdated_checker.rb, line 29
def update_pending_gems
  @update_pending_gems ||= outdated_gems - update_required_gems
end
update_required_gems() click to toggle source
# File lib/gem_outdated_checker.rb, line 21
def update_required_gems
  return outdated_gems if @exclude_gems.empty?

  @update_required_gems ||= outdated_gems.reject do |gem_name|
    @exclude_gems.any?{ |pg| gem_name =~ /#{pg}/ }
  end
end

Private Instance Methods

bundle_outdated() click to toggle source
# File lib/gem_outdated_checker.rb, line 39
def bundle_outdated
  @out, @err, @status = exec_command
  # TODO: Error handling
  # @status: if any oudated_gem exitsts, return exit code 1
  @execed = true
end
configs() click to toggle source
# File lib/gem_outdated_checker.rb, line 35
def configs
  @configs ||= self.class.configs
end
exec_command() click to toggle source
# File lib/gem_outdated_checker.rb, line 46
def exec_command
  Open3.capture3("#{@bundle_path} outdated")
end