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"] if hash["instance_id"] != nil @id = hash["instance_id"] elsif hash["instance"] != nil @id = hash["instance"] else @id = nil end @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| @type = @record.class.columns_hash[k].type @value = v change_value @record.send("#{k}=".to_sym, @value) unless Apiotics.configuration.reduced_metadata == true @record.send(("#{k}_action=").to_sym, @action) @record.send("#{k}_timestamp=".to_sym, @timestamp) @record.send("#{k}_status=".to_sym, @status) end 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 87 def action @action.to_s end
change_value()
click to toggle source
# File lib/apiotics/insert.rb, line 110 def change_value if @type == :boolean if @value == "true" @value = true elsif @value == "false" @value = false end # elsif @type == :json # @value = JSON.parse(@value) elsif @type == :integer @value = @value.to_i elsif @type == :string end end
find_record()
click to toggle source
# File lib/apiotics/insert.rb, line 49 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 74 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 81 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 91 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 60 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 67 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 106 def valid return @valid end