Class: GemData
- Inherits:
-
Object
- Object
- GemData
- Defined in:
- lib/gem_velocity/gem_data.rb
Instance Attribute Summary collapse
-
#gem_name ⇒ Object
readonly
Returns the value of attribute gem_name.
Instance Method Summary collapse
- #downloads_metadata(version, start_time, end_time) ⇒ Object
-
#initialize(gem_name) ⇒ GemData
constructor
A new instance of GemData.
- #total_for_version(version) ⇒ Object
- #versions ⇒ Object
- #versions_built_at ⇒ Object
- #versions_metadata ⇒ Object
Constructor Details
#initialize(gem_name) ⇒ GemData
Returns a new instance of GemData.
7 8 9 |
# File 'lib/gem_velocity/gem_data.rb', line 7 def initialize(gem_name) @gem_name = gem_name end |
Instance Attribute Details
#gem_name ⇒ Object (readonly)
Returns the value of attribute gem_name.
5 6 7 |
# File 'lib/gem_velocity/gem_data.rb', line 5 def gem_name @gem_name end |
Instance Method Details
#downloads_metadata(version, start_time, end_time) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/gem_velocity/gem_data.rb', line 40 def (version, start_time, end_time) # cache api call. @downloads_metadata ||= {} key = "#{version}-#{start_time}-#{end_time}" return @downloads_metadata[key] if @downloads_metadata[key] @downloads_metadata[key] ||= Gems.downloads(gem_name, version, start_time, end_time).to_a end |
#total_for_version(version) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/gem_velocity/gem_data.rb', line 33 def total_for_version(version) @total_for_version ||= {} key = "#{version}" return @total_for_version[key] if @total_for_version[key] @total_for_version[key] ||= Gems.total_downloads(gem_name, version) end |
#versions ⇒ Object
11 12 13 |
# File 'lib/gem_velocity/gem_data.rb', line 11 def versions .map{|v| v["number"]} end |
#versions_built_at ⇒ Object
15 16 17 18 19 |
# File 'lib/gem_velocity/gem_data.rb', line 15 def versions_built_at h = {} .map{|v| h.merge!(v["number"] => v["built_at"] )} h end |
#versions_metadata ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/gem_velocity/gem_data.rb', line 21 def # cache api call. @versions_metadata ||= Gems.versions(gem_name) # it should be a hash if @versions_metadata.is_a?(String) if @versions_metadata.match(/This rubygem could not be found/) raise(NoSuchGem, "This rubygem could not be found") end end @versions_metadata end |