Class: Pennyworth::Presenters::Gem

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

Overview

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

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Gem.



11
12
13
14
# File 'lib/pennyworth/presenters/gem.rb', line 11

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

Instance Method Details

#changes_urlObject



37
# File 'lib/pennyworth/presenters/gem.rb', line 37

def changes_url = record.fetch(:changelog_uri)

#downloadsObject



31
# File 'lib/pennyworth/presenters/gem.rb', line 31

def downloads = record.fetch(__method__)

#idObject



16
# File 'lib/pennyworth/presenters/gem.rb', line 16

def id = record.fetch(:name)

#issues_urlObject



39
# File 'lib/pennyworth/presenters/gem.rb', line 39

def issues_url = record.fetch(:bug_tracker_uri)

#labelObject



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

def label = inflector.call(id.titleize)

#licensesObject



29
# File 'lib/pennyworth/presenters/gem.rb', line 29

def licenses = record.fetch(__method__).join(", ")

#site_urlObject



33
# File 'lib/pennyworth/presenters/gem.rb', line 33

def site_url = record.fetch(:homepage_uri)

#source_urlObject



35
# File 'lib/pennyworth/presenters/gem.rb', line 35

def source_url = record.fetch(:source_code_uri)

#subtitleObject



20
21
22
23
24
25
# File 'lib/pennyworth/presenters/gem.rb', line 20

def subtitle
  "Version: #{version}. " \
  "Updated: #{updated_at[..9]}. " \
  "Licenses: #{licenses}. " \
  "Downloads: #{downloads}."
end

#updated_atObject



41
# File 'lib/pennyworth/presenters/gem.rb', line 41

def updated_at = record.fetch(:version_created_at)

#versionObject



27
# File 'lib/pennyworth/presenters/gem.rb', line 27

def version = record.fetch(__method__)