class GemsBond::Spy::One

Inspects gem and outputs the result in terminal

Constants

PRELOAD_KEYS

Public Class Methods

new(name) click to toggle source

Initializes an instance @param name [String] @return [GemsBond::Spy::One]

# File lib/gems_bond/spy/one.rb, line 24
def initialize(name)
  @name = name
end

Public Instance Methods

call() click to toggle source

Fetches gem then prints information @return [void]

# File lib/gems_bond/spy/one.rb, line 30
def call
  if gem.exist?
    gem.prepare_data(keys: PRELOAD_KEYS, concurrency: false)
    GemsBond::Printers::Stdout.new(gem).call
  else
    puts "Sorry, this gem could not be found!"
  end
end

Private Instance Methods

dependency() click to toggle source

Finds dependency corresponding to the name @return [Bundler::Dependency, nil]

# File lib/gems_bond/spy/one.rb, line 43
def dependency
  @dependency ||= Bundler.load.gems.find { |dep| dep.name == @name }
end
gem() click to toggle source

Generates a gem instance @return [GemsBond::Gem]

# File lib/gems_bond/spy/one.rb, line 49
def gem
  if dependency
    GemsBond::Gem.new(dependency)
  else
    unknown_dependency = Bundler::Dependency.new(@name, nil)
    GemsBond::Gem.new(unknown_dependency, unknown: true)
  end
end