Class: Gems::Gem
- Inherits:
-
Object
- Object
- Gems::Gem
- Defined in:
- lib/gemverse/gems.rb
Overview
todo/check: rename or use Gem::Meta or such - why? why not?
Instance Attribute Summary collapse
-
#homepage ⇒ Object
readonly
Returns the value of attribute homepage.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#runtime ⇒ Object
(also: #runtime_dependencies)
readonly
Returns the value of attribute runtime.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
-
#version_created ⇒ Object
readonly
Returns the value of attribute version_created.
-
#version_downloads ⇒ Object
readonly
Returns the value of attribute version_downloads.
Class Method Summary collapse
-
.create(h) ⇒ Object
todo/check: rename to create_from_json or such - why? why not?.
Instance Method Summary collapse
-
#initialize(name:, version: nil, version_created: nil, version_downloads: nil, homepage: nil, yanked: nil, runtime: []) ⇒ Gem
constructor
A new instance of Gem.
-
#yanked? ⇒ Boolean
always return false if not defined - why? why not?.
Constructor Details
#initialize(name:, version: nil, version_created: nil, version_downloads: nil, homepage: nil, yanked: nil, runtime: []) ⇒ Gem
Returns a new instance of Gem.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/gemverse/gems.rb', line 81 def initialize( name:, version: nil, version_created: nil, version_downloads: nil, homepage: nil, yanked: nil, runtime: [] ) @name = name @version = version @version_created = version_created @version_downloads = version_downloads @homepage = homepage @yanked = yanked @runtime = runtime end |
Instance Attribute Details
#homepage ⇒ Object (readonly)
Returns the value of attribute homepage.
55 56 57 |
# File 'lib/gemverse/gems.rb', line 55 def homepage @homepage end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
55 56 57 |
# File 'lib/gemverse/gems.rb', line 55 def name @name end |
#runtime ⇒ Object (readonly) Also known as: runtime_dependencies
Returns the value of attribute runtime.
55 56 57 |
# File 'lib/gemverse/gems.rb', line 55 def runtime @runtime end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
55 56 57 |
# File 'lib/gemverse/gems.rb', line 55 def version @version end |
#version_created ⇒ Object (readonly)
Returns the value of attribute version_created.
55 56 57 |
# File 'lib/gemverse/gems.rb', line 55 def version_created @version_created end |
#version_downloads ⇒ Object (readonly)
Returns the value of attribute version_downloads.
55 56 57 |
# File 'lib/gemverse/gems.rb', line 55 def version_downloads @version_downloads end |
Class Method Details
.create(h) ⇒ Object
todo/check: rename to create_from_json or such - why? why not?
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/gemverse/gems.rb', line 61 def self.create( h ) ## todo/check: rename to create_from_json or such - why? why not? ## optional keyword args kwargs = { version: h['version'], ## only use year/month/day for now now hours etc. - why? why not version_created: h['version_created_at'] ? Date.strptime( h['version_created_at'], '%Y-%m-%d' ) : nil, version_downloads: h['version_downloads'], ## note: (auto-)clean ## for example - newline seen in "http://icanhasaudio.com/\n" !!! homepage: h['homepage_uri'] ? h['homepage_uri'].gsub( /[ \r\n]/, '') : nil, yanked: h['yanked'], runtime: h['dependencies']['runtime'].map { |dep| dep['name'] } } new( name: h['name'], **kwargs ) end |
Instance Method Details
#yanked? ⇒ Boolean
always return false if not defined - why? why not?
101 |
# File 'lib/gemverse/gems.rb', line 101 def yanked?() @yanked.nil? ? false : @yanked; end |