Class: Simbiotes::Insert
- Inherits:
-
Object
- Object
- Simbiotes::Insert
- Defined in:
- lib/simbiotes/insert.rb
Instance Method Summary collapse
- #action ⇒ Object
- #change_value ⇒ Object
- #find_record ⇒ Object
- #get_ack ⇒ Object
-
#initialize(hash = {"action" => "set-complete", "instance" => 1, "driver" => "test_driver", "interface" => "control", "value" => 72, "timestamp" => "1000000000000", "status" => "ok"}) ⇒ Insert
constructor
A new instance of Insert.
- #save ⇒ Object
- #save_log ⇒ Object
- #set_ack ⇒ Object
- #set_complete ⇒ Object
Constructor Details
#initialize(hash = {"action" => "set-complete", "instance" => 1, "driver" => "test_driver", "interface" => "control", "value" => 72, "timestamp" => "1000000000000", "status" => "ok"}) ⇒ Insert
Returns a new instance of Insert.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/simbiotes/insert.rb', line 9 def initialize(hash = {"action" => "set-complete", "instance" => 1, "driver" => "test_driver", "interface" => "control", "value" => 72, "timestamp" => "1000000000000", "status" => "ok"}) @action = hash["action"] @id = hash["instance"] @class = hash["driver"] @methods = hash["interface"] @value = hash["value"] @timestamp = hash["timestamp"] @status = hash["status"] find_record @methods.each do |k,v| @record.send(("#{k}_action=").to_sym, @action) @type = @record.class.columns_hash[k].type #change_value @record.send("#{k}=".to_sym, v) @record.send("#{k}_timestamp=".to_sym, @timestamp) @record.send("#{k}_status=".to_sym, @status) end if @action == "set-complete" set_complete elsif @action == "set-request-ack" set_ack elsif @action == "get-ack" get_ack end end |
Instance Method Details
#action ⇒ Object
72 73 74 |
# File 'lib/simbiotes/insert.rb', line 72 def action @action.to_s end |
#change_value ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/simbiotes/insert.rb', line 91 def change_value if @type == :boolean if @value == "true" @value = true elsif @value == "false" @value = false end elsif @type == :integer @value = @value.to_i elsif @type == :string end end |
#find_record ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/simbiotes/insert.rb', line 35 def find_record begin klass = @class.classify.constantize master_klass = (klass.parent.to_s + "::" + klass.parent.to_s).classify.constantize master_record = master_klass.find_by(simbiotes_instance: @id) @record = master_record.send(@class.demodulize.underscore.downcase) #puts e end end |
#get_ack ⇒ Object
59 60 61 62 63 64 |
# File 'lib/simbiotes/insert.rb', line 59 def get_ack @methods.each do |k,v| @record.send("#{k}_ack=".to_sym, true) @record.send("#{k}_complete=".to_sym, false) end end |
#save ⇒ Object
66 67 68 69 70 |
# File 'lib/simbiotes/insert.rb', line 66 def save @record.skip_extract = true @record.save @record.skip_extract = false end |
#save_log ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/simbiotes/insert.rb', line 76 def save_log @methods.each do |k,v| klass = "#{@class}_#{k}_log".classify.constantize r = klass.new r.send(("#{k}_action=").to_sym, @action) r.send("#{k}=".to_sym, v) r.send("#{k}_timestamp=".to_sym, @timestamp) r.send("#{k}_status=".to_sym, @status) r.send("#{k}_ack=".to_sym, @record.send("#{k}_ack")) r.send("#{k}_complete=".to_sym, @record.send("#{k}_complete")) r.send("#{@class.classify.demodulize.underscore.gsub("/","_")}_id=".to_sym, @record.id) r.save end end |
#set_ack ⇒ Object
45 46 47 48 49 50 |
# File 'lib/simbiotes/insert.rb', line 45 def set_ack @methods.each do |k,v| @record.send("#{k}_ack=".to_sym, true) @record.send("#{k}_complete=".to_sym, false) end end |
#set_complete ⇒ Object
52 53 54 55 56 57 |
# File 'lib/simbiotes/insert.rb', line 52 def set_complete @methods.each do |k,v| @record.send("#{k}_ack=".to_sym, true) @record.send("#{k}_complete=".to_sym, true) end end |