Class: Ace::Support::Models::Molecules::DiffGenerator
- Inherits:
-
Object
- Object
- Ace::Support::Models::Molecules::DiffGenerator
- Defined in:
- lib/ace/support/models/molecules/diff_generator.rb
Overview
Generates diff between cached API versions
Constant Summary collapse
- TRACKED_FIELDS =
%w[name cost limit status modalities].freeze
Instance Method Summary collapse
-
#generate ⇒ Models::DiffResult
Generate diff between current and previous cache.
-
#initialize(cache_manager: nil) ⇒ DiffGenerator
constructor
Initialize diff generator.
Constructor Details
#initialize(cache_manager: nil) ⇒ DiffGenerator
Initialize diff generator
15 16 17 |
# File 'lib/ace/support/models/molecules/diff_generator.rb', line 15 def initialize(cache_manager: nil) @cache_manager = cache_manager || CacheManager.new end |
Instance Method Details
#generate ⇒ Models::DiffResult
Generate diff between current and previous cache
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ace/support/models/molecules/diff_generator.rb', line 21 def generate current = @cache_manager.read previous = @cache_manager.read_previous unless current return Models::DiffResult.new( current_sync_at: Time.now ) end unless previous # No previous - everything is "new" all_models = extract_all_models(current) return Models::DiffResult.new( added_models: all_models, added_providers: current.keys, current_sync_at: @cache_manager.last_sync_at ) end compare(previous, current) end |