Class: Ni::Storages::ActiveRecordMetadataRepository
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Ni::Storages::ActiveRecordMetadataRepository
- Defined in:
- lib/ni/storages/active_record_metadata_repository.rb,
lib/ni/storages/active_record_metadata_repository.rb
Constant Summary collapse
- TIMER_KEY =
'timer'.freeze
Class Method Summary collapse
- .clear_timer!(timer_id) ⇒ Object
- .fetch(uid, key) ⇒ Object
- .fetch_timers ⇒ Object
- .setup_timer!(timer_id, datetime, timer_klass_name, timer_action, system_uid) ⇒ Object
- .store(uid, key, data) ⇒ Object
Class Method Details
.clear_timer!(timer_id) ⇒ Object
29 30 31 |
# File 'lib/ni/storages/active_record_metadata_repository.rb', line 29 def self.clear_timer!(timer_id) self.where(uid: timer_id, key: TIMER_KEY).delete_all end |
.fetch(uid, key) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/ni/storages/active_record_metadata_repository.rb', line 14 def self.fetch(uid, key) record = self.where(uid: uid, key: key).first if record.present? JSON.parse(record.data, symbolize_names: true) else {} end end |
.fetch_timers ⇒ Object
33 34 35 36 37 |
# File 'lib/ni/storages/active_record_metadata_repository.rb', line 33 def self.fetch_timers self.where(key: TIMER_KEY).where("run_timer_at < ?", Time.now).map do |record| [record.uid] + JSON.parse(record.data) end end |
.setup_timer!(timer_id, datetime, timer_klass_name, timer_action, system_uid) ⇒ Object
24 25 26 27 |
# File 'lib/ni/storages/active_record_metadata_repository.rb', line 24 def self.setup_timer!(timer_id, datetime, timer_klass_name, timer_action, system_uid) data = [timer_klass_name, timer_action, system_uid].to_json self.create!(uid: timer_id, key: TIMER_KEY, run_timer_at: datetime, data: data) end |
.store(uid, key, data) ⇒ Object
9 10 11 12 |
# File 'lib/ni/storages/active_record_metadata_repository.rb', line 9 def self.store(uid, key, data) record = self.where(uid: uid, key: key).first_or_initialize record.update(data: data.to_json) end |