class Simbiotes::Extract
Public Class Methods
fire(object, interfaces, a, time0= nil, time1= nil)
click to toggle source
# File lib/simbiotes/extract.rb, line 39 def self.fire(object, interfaces, a, time0= nil, time1= nil) if Simbiotes.configuration.targets[object.class.parent.to_s] != nil k = "#{object.class.parent}::#{object.class.parent}".constantize i = "#{object.class.parent}".demodulize.underscore.gsub(" ","_").downcase + "_id" msg = { "action" => a, "instance" => k.find(object.send(i)).simbiotes_instance, "driver" => object.class.name.to_s, "interface" => interfaces, } if time0 != nil msg["time0"] = time0 msg["time1"] = time1 end c = Simbiotes::Client.new c.send(msg.to_json) object.skip_extract = true interfaces.each do |key, value| object.send(("#{key}_ack=").to_sym, false) object.send(("#{key}_complete=").to_sym, false) object.send(("#{key}_action=").to_sym, a) end object.save object.skip_extract = false unless Simbiotes.configuration.local_logging == false Extract.save_log(object, interfaces, a) end end end
get(object, time0= nil, time1= nil)
click to toggle source
# File lib/simbiotes/extract.rb, line 28 def self.get(object, time0= nil, time1= nil) object.accessed_fields.each do |field| v = Array.new if time0 != nil Extract.fire(object, field, object.send(field), "get", time0, time1) else Extract.fire(object, field, object.send(field), "get") end end end
is_target(object, k)
click to toggle source
# File lib/simbiotes/extract.rb, line 20 def self.is_target(object, k) if Simbiotes.configuration.targets[object.class.parent.to_s][object.class.name.demodulize.to_s].include?(k) || Simbiotes.configuration.targets[object.class.parent.to_s][object.class.name.demodulize.to_s].include?(k.titleize) return true else return false end end
save_log(object, interfaces, a)
click to toggle source
# File lib/simbiotes/extract.rb, line 71 def self.save_log(object, interfaces, a) interfaces.each do |key, value| klass = "#{object.class.name.underscore}_#{key}_log".classify.constantize r = klass.new r.send(("#{key}_action=").to_sym, a) r.send(("#{key}=".to_sym), value) r.send(("#{key}_ack=").to_sym, false) r.send(("#{key}_complete=").to_sym, false) r.send(("#{object.class.name.demodulize.underscore.gsub("/","_")}_id=").to_sym, object.id) puts r.inspect r.save end end
send(object)
click to toggle source
# File lib/simbiotes/extract.rb, line 7 def self.send(object) interfaces = Hash.new puts object.previous_changes object.previous_changes.each do |k,v| if Simbiotes::Extract.is_target(object, k) interfaces[k] = v[1].to_s end end if interfaces != {} Extract.fire(object, interfaces, "set-request") end end