class PryGem::GemStat

@since 1.0.0

Constants

FAIL_WHALE
STAT_HOST
STAT_PATH
STAT_PORT

Public Instance Methods

process(name) click to toggle source
# File lib/pry-gem/gem_stat.rb, line 32
    def process(name)
      client = Net::HTTP.start STAT_HOST, STAT_PORT, use_ssl: true
      res = client.get STAT_PATH % URI.encode_www_form_component(name)
      case res
      when Net::HTTPOK
        _pry_.pager.page format_gem(JSON.parse(res.body))
      when Net::HTTPServiceUnavailable
        _pry_.pager.page <<-FAILURE
#{bright_blue(FAIL_WHALE)}
#{bright_red('Ruby On Rails')}
#{bright_red('Net::HTTPServiceUnavailable')}
        FAILURE
      else
        raise Pry::CommandError, "Bad response (#{res.class})"
      end
    ensure
      client.finish if client
    end

Private Instance Methods

format_dependencies(rdeps) click to toggle source
# File lib/pry-gem/gem_stat.rb, line 79
def format_dependencies(rdeps)
  return bold('None') if rdeps.empty?

  with_line_numbers(
    rdeps.map { |h| "#{h['name']} (#{h['requirements']})" }.join("\n"),
    1,
    :bold
  )
end
format_gem(h) click to toggle source
# File lib/pry-gem/gem_stat.rb, line 53
    def format_gem(h)
      h = Pry::Config.from_hash(h)
      format_str = unindent <<-FORMAT
        %{name} %{version}
        --
        Total Downloads   : %{downloads}
        Version Downloads : %{version_downloads}

        #{red('Dependencies')} (runtime)
        --
        %{rdependencies}

        #{red('Dependencies')} (development)
        %{ddependencies}
      FORMAT
      format(
        format_str,
        name: green(h.name),
        version: bold("v#{h.version}"),
        downloads: h.downloads,
        version_downloads: h.version_downloads,
        rdependencies: format_dependencies(h.dependencies.runtime),
        ddependencies: format_dependencies(h.dependencies.development)
      )
    end