Sha256: c31e2aff07ef916514836b525b13ca04d49c14f506828eed9546976b6d00ba72
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
module Ni module Storages if defined?(ActiveRecord) class ActiveRecordMetadataRepository < ActiveRecord::Base self.table_name = "ni_metadata" TIMER_KEY = 'timer'.freeze def self.store(uid, key, data) record = self.where(uid: uid, key: key).first_or_initialize record.update(data: data.to_json) end 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 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 def self.clear_timer!(timer_id) self.where(uid: timer_id, key: TIMER_KEY).delete_all end 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 end else class ActiveRecordMetadataRepository def self.store(uid, key, data) raise "ActiveRecord not found" end def self.fetch(uid, key) raise "ActiveRecord not found" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ni-0.1.1 | lib/ni/storages/active_record_metadata_repository.rb |