Class: LibyearBundler::ReleaseDateCache
- Inherits:
-
Object
- Object
- LibyearBundler::ReleaseDateCache
- Defined in:
- lib/libyear_bundler/release_date_cache.rb
Overview
A cache of release dates by name and version, for both gems and rubies.
Class Method Summary collapse
Instance Method Summary collapse
- #[](name, version) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(data) ⇒ ReleaseDateCache
constructor
A new instance of ReleaseDateCache.
- #save(path) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(data) ⇒ ReleaseDateCache
Returns a new instance of ReleaseDateCache.
8 9 10 11 12 13 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 8 def initialize(data) raise TypeError unless data.is_a?(Hash) @data = data uri = URI('https://rubygems.org') @http = Net::HTTP.start(uri.host, uri.port, use_ssl: true) end |
Class Method Details
.load(path) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 33 def load(path) if File.exist?(path) new(YAMLLoader.safe_load(File.read(path))) else new({}) end end |
Instance Method Details
#[](name, version) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 15 def [](name, version) key = format('%s-%s', name, version) if @data.key?(key) @data[key] else @data[key] = release_date(name, version) end end |
#empty? ⇒ Boolean
24 25 26 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 24 def empty? @data.empty? end |
#save(path) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 42 def save(path) content = YAML.dump(@data) begin File.write(path, content) rescue StandardError => e warn format('Unable to update cache: %s, %s', path, e.) end end |
#size ⇒ Object
28 29 30 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 28 def size @data.size end |