module CPEE::Persistence
Public Class Methods
each_object(opts) { |instance| ... }
click to toggle source
# File lib/cpee/persistence.rb, line 81 def self::each_object(opts) opts[:redis].zrevrange(@@obj + 's',0,-1).each do |instance| yield instance end end
exists?(id,opts)
click to toggle source
# File lib/cpee/persistence.rb, line 74 def self::exists?(id,opts) #{{{ opts[:redis].exists?(@@obj + ":#{id}/state") end
exists_handler?(id,opts,key)
click to toggle source
# File lib/cpee/persistence.rb, line 142 def self::exists_handler?(id,opts,key) #{{{ opts[:redis].exists?(@@obj + ":#{id}/handlers/#{key}") end
extract_handler(id,opts,key)
click to toggle source
# File lib/cpee/persistence.rb, line 139 def self::extract_handler(id,opts,key) #{{{ opts[:redis].smembers(@@obj + ":#{id}/handlers/#{key}") end
extract_handlers(id,opts)
click to toggle source
# File lib/cpee/persistence.rb, line 145 def self::extract_handlers(id,opts) #{{{ opts[:redis].smembers(@@obj + ":#{id}/handlers").map do |e| [e, opts[:redis].get(@@obj + ":#{id}/handlers/#{e}/url")] end end
extract_item(id,opts,item)
click to toggle source
# File lib/cpee/persistence.rb, line 70 def self::extract_item(id,opts,item) #{{{ opts[:redis].get(@@obj + ":#{id}/#{item}") end
extract_list(id,opts,item)
click to toggle source
# File lib/cpee/persistence.rb, line 52 def self::extract_list(id,opts,item) #{{{ opts[:redis].zrange(@@obj + ":#{id}/#{item}",0,-1).map do |e| [e,opts[:redis].get(@@obj + ":#{id}/#{item}/#{e}")] end end
extract_set(id,opts,item)
click to toggle source
# File lib/cpee/persistence.rb, line 47 def self::extract_set(id,opts,item) #{{{ opts[:redis].smembers(@@obj + ":#{id}/#{item}").map do |e| [e,opts[:redis].get(@@obj + ":#{id}/#{item}/#{e}")] end end
is_member?(id,opts,item,value)
click to toggle source
# File lib/cpee/persistence.rb, line 77 def self::is_member?(id,opts,item,value) #{{{ opts[:redis].sismember(@@obj + ":#{id}/#{item}",value) end
keys(id,opts,item=nil)
click to toggle source
# File lib/cpee/persistence.rb, line 102 def self::keys(id,opts,item=nil) opts[:redis].keys(File.join(@@obj + ":#{id}",item.to_s,'*')) end
new_object(opts)
click to toggle source
# File lib/cpee/persistence.rb, line 87 def self::new_object(opts) id = opts[:redis].zrevrange(@@obj + 's', 0, 0).first.to_i + 1 opts[:redis].zadd(@@obj + 's',id,id) id end
new_static_object(id,opts)
click to toggle source
# File lib/cpee/persistence.rb, line 92 def self::new_static_object(id,opts) opts[:redis].set(File.join(@@obj + ":#{id}",'state'),'') nil end
obj()
click to toggle source
# File lib/cpee/persistence.rb, line 19 def self::obj #{{{ @@obj end
obj=(it)
click to toggle source
# File lib/cpee/persistence.rb, line 22 def self::obj=(it) #{{{ @@obj = it end
set_handler(id,opts,key,url,values,update=false)
click to toggle source
# File lib/cpee/persistence.rb, line 106 def self::set_handler(id,opts,key,url,values,update=false) #{{{ exis = opts[:redis].smembers(@@obj + ":#{id}/handlers/#{key}") if update == false && exis.length > 0 return 405 end ah = AttributesHelper.new attributes = Persistence::extract_list(id,opts,'attributes').to_h dataelements = Persistence::extract_list(id,opts,'dataelements').to_h endpoints = Persistence::extract_list(id,opts,'endpoints').to_h deleted = exis - values CPEE::Message::send( :event, 'handler/change', opts[:url], id, Persistence::extract_item(id,opts,'attributes/uuid'), Persistence::extract_item(id,opts,'attributes/info'), { :key => key, :url => url, :changed => values, :deleted => deleted, :attributes => ah.translate(attributes,dataelements,endpoints), }, opts[:redis] ) 200 end
set_item(id,opts,item,value)
click to toggle source
# File lib/cpee/persistence.rb, line 58 def self::set_item(id,opts,item,value) #{{{ CPEE::Message::send( :event, File.join(item,'change'), opts[:url], id, Persistence::extract_item(id,opts,'attributes/uuid'), Persistence::extract_item(id,opts,'attributes/info'), value, opts[:redis] ) end
set_list(id,opts,item,values,deleted=[])
click to toggle source
# File lib/cpee/persistence.rb, line 26 def self::set_list(id,opts,item,values,deleted=[]) #{{{ ah = AttributesHelper.new attributes = Persistence::extract_list(id,opts,'attributes').to_h dataelements = Persistence::extract_list(id,opts,'dataelements').to_h endpoints = Persistence::extract_list(id,opts,'endpoints').to_h CPEE::Message::send( :event, File.join(item,'change'), opts[:url], id, Persistence::extract_item(id,opts,'attributes/uuid'), Persistence::extract_item(id,opts,'attributes/info'), { :changed => values.keys, :deleted => deleted, :values => values.transform_values{|val| JSON::parse(val) rescue val }, :attributes => ah.translate(attributes,dataelements,endpoints), }, opts[:redis] ) end