class Pry::Command::GemSearch

Constants

API_ENDPOINT

Public Instance Methods

options(opt) click to toggle source
# File lib/pry/commands/gem_search.rb, line 18
def options(opt)
  opt.on :l, :limit, 'Limit the number of results (max: 30)',
    default: 10,
    as: Integer,
    argument: true
end
process(str) click to toggle source
# File lib/pry/commands/gem_search.rb, line 25
def process(str)
  uri = URI.parse(API_ENDPOINT)
  uri.query = URI.encode_www_form(query: str)
  gems = JSON.load Net::HTTP.get(uri)
  _pry_.pager.page list_as_string(gems, opts[:limit])
end
setup() click to toggle source
# File lib/pry/commands/gem_search.rb, line 13
def setup
  require 'json' unless defined?(JSON)
  require 'net/http' unless defined?(Net::HTTP)
end

Private Instance Methods

list_as_string(gems, limit = 10) click to toggle source
# File lib/pry/commands/gem_search.rb, line 33
def list_as_string(gems, limit = 10)
  gems[0..limit - 1].map do |gem|
    name, version, info = gem.values_at 'name', 'version', 'info'
    "#{bold(name)} #{bold('v' + version)} \n#{info}\n\n"
  end.join
end