Class: BundleSafeUpdate::RiskCache
- Inherits:
-
Object
- Object
- BundleSafeUpdate::RiskCache
- Defined in:
- lib/bundle_safe_update/risk_cache.rb
Defined Under Namespace
Classes: OwnerChange
Constant Summary collapse
- CACHE_FILENAME =
'bundle-safe-update-cache.yml'- CACHE_VERSION =
1
Instance Method Summary collapse
- #detect_owner_change(gem_name, current_owners) ⇒ Object
- #exists? ⇒ Boolean
-
#initialize(cache_path: nil) ⇒ RiskCache
constructor
A new instance of RiskCache.
- #owner_changed?(gem_name, current_owners) ⇒ Boolean
- #owners_for(gem_name) ⇒ Object
- #save ⇒ Object
- #update_owners(gem_name, owners) ⇒ Object
Constructor Details
#initialize(cache_path: nil) ⇒ RiskCache
Returns a new instance of RiskCache.
14 15 16 17 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 14 def initialize(cache_path: nil) @cache_path = cache_path || default_cache_path @data = load_cache end |
Instance Method Details
#detect_owner_change(gem_name, current_owners) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 30 def detect_owner_change(gem_name, current_owners) cached = owners_for(gem_name) sanitized = current_owners.compact return nil if cached.empty? || cached.sort == sanitized.sort OwnerChange.new( gem_name: gem_name, previous_owners: cached, current_owners: sanitized ) end |
#exists? ⇒ Boolean
51 52 53 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 51 def exists? File.exist?(@cache_path) end |
#owner_changed?(gem_name, current_owners) ⇒ Boolean
23 24 25 26 27 28 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 23 def owner_changed?(gem_name, current_owners) cached = owners_for(gem_name) return false if cached.empty? cached.sort != current_owners.compact.sort end |
#owners_for(gem_name) ⇒ Object
19 20 21 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 19 def owners_for(gem_name) @data['owners'][gem_name] || [] end |
#save ⇒ Object
46 47 48 49 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 46 def save @data['updated_at'] = Time.now.iso8601 File.write(@cache_path, YAML.dump(@data)) end |
#update_owners(gem_name, owners) ⇒ Object
42 43 44 |
# File 'lib/bundle_safe_update/risk_cache.rb', line 42 def update_owners(gem_name, owners) @data['owners'][gem_name] = owners.compact.sort end |