class Ni::Storages::ActiveRecordMetadataRepository

Constants

TIMER_KEY

Public Class Methods

clear_timer!(timer_id) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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