Class: Pennyworth::Presenters::StandardGem

Inherits:
Object
  • Object
show all
Defined in:
lib/pennyworth/presenters/standard_gem.rb

Overview

Renders Standard Gem records into a compatible format for use in Alfred script filters.

Instance Method Summary collapse

Constructor Details

#initialize(record, inflector: Inflector.new) ⇒ StandardGem

Returns a new instance of StandardGem.



13
14
15
16
# File 'lib/pennyworth/presenters/standard_gem.rb', line 13

def initialize record, inflector: Inflector.new
  @record = record
  @inflector = inflector
end

Instance Method Details

#idObject



18
# File 'lib/pennyworth/presenters/standard_gem.rb', line 18

def id = record.fetch :gem

#issues_urlObject



34
# File 'lib/pennyworth/presenters/standard_gem.rb', line 34

def issues_url = "https://github.com/ruby/#{id}/issues"

#labelObject



20
# File 'lib/pennyworth/presenters/standard_gem.rb', line 20

def label = "#{inflector.call id.titleize} #{version}"

#site_urlObject



30
# File 'lib/pennyworth/presenters/standard_gem.rb', line 30

def site_url = record.fetch(:sourceRepository, Core::EMPTY_STRING)

#source_urlObject



32
# File 'lib/pennyworth/presenters/standard_gem.rb', line 32

def source_url = record.fetch(:sourceRepository, Core::EMPTY_STRING)

#subtitleObject



22
# File 'lib/pennyworth/presenters/standard_gem.rb', line 22

def subtitle = record.fetch :description

#versionObject

:reek:FeatureEnvy



25
26
27
28
# File 'lib/pennyworth/presenters/standard_gem.rb', line 25

def version
  versions = record.fetch :versions, Core::EMPTY_HASH
  (versions[:bundled] || versions[:default] || versions).values.first
end

#versions_urlObject



36
# File 'lib/pennyworth/presenters/standard_gem.rb', line 36

def versions_url = "https://github.com/ruby/#{id}/tags"