Class: Simbiotes::Extract
- Inherits:
-
Object
- Object
- Simbiotes::Extract
- Defined in:
- lib/simbiotes/extract.rb
Class Method Summary collapse
- .fire(object, interfaces, a, time0 = nil, time1 = nil) ⇒ Object
- .get(object, time0 = nil, time1 = nil) ⇒ Object
- .is_target(object, k) ⇒ Object
- .save_log(object, interfaces, a) ⇒ Object
- .send(object) ⇒ Object
Class Method Details
.fire(object, interfaces, a, time0 = nil, time1 = nil) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# 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) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# 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) ⇒ Object
20 21 22 23 24 25 26 |
# 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) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 |
# 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) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# 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 |