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 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 8 def initialize(data) raise TypeError unless data.is_a?(Hash) @data = data end |
Class Method Details
.load(path) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 31 def load(path) if File.exist?(path) new(YAMLLoader.safe_load(File.read(path))) else new({}) end end |
Instance Method Details
#[](name, version) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 13 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
22 23 24 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 22 def empty? @data.empty? end |
#save(path) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 40 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
26 27 28 |
# File 'lib/libyear_bundler/release_date_cache.rb', line 26 def size @data.size end |