module CPEE::Persistence
Constants
- OBJ
Public Class Methods
each_object(opts) { |instance| ... }
click to toggle source
# File lib/cpee/persistence.rb, line 75 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 68 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 125 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 122 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 128 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 64 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 46 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 41 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 71 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 85 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 81 def self::new_object(opts) opts[:redis].zrevrange(OBJ + 's', 0, 0).first.to_i + 1 end
set_handler(id,opts,key,url,values,update=false)
click to toggle source
# File lib/cpee/persistence.rb, line 89 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 52 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 20 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, :attributes => ah.translate(attributes,dataelements,endpoints), }, opts[:redis] ) end