class Apiotics::Insert
Public Class Methods
new(hash = {"action" => "set-complete", "instance" => 1, "driver" => "test_driver", "interface" => "control", "value" => 72, "timestamp" => "1000000000000", "status" => "ok"})
click to toggle source
# File lib/apiotics/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"] @valid = true begin 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 rescue @valid = false end end
Public Instance Methods
action()
click to toggle source
# File lib/apiotics/insert.rb, line 78 def action @action.to_s end
change_value()
click to toggle source
# File lib/apiotics/insert.rb, line 101 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()
click to toggle source
# File lib/apiotics/insert.rb, line 40 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(apiotics_instance: @id) @record = master_record.send(@class.demodulize.underscore.downcase) rescue Exception => e puts e.to_s end end
get_ack()
click to toggle source
# File lib/apiotics/insert.rb, line 65 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()
click to toggle source
# File lib/apiotics/insert.rb, line 72 def save @record.skip_extract = true @record.save @record.skip_extract = false end
save_log()
click to toggle source
# File lib/apiotics/insert.rb, line 82 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()
click to toggle source
# File lib/apiotics/insert.rb, line 51 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()
click to toggle source
# File lib/apiotics/insert.rb, line 58 def set_complete @methods.each do |k,v| @record.send("#{k}_ack=".to_sym, true) @record.send("#{k}_complete=".to_sym, true) end end
valid()
click to toggle source
# File lib/apiotics/insert.rb, line 97 def valid return @valid end