class Condition::Storage::RailsDb
Constants
- LOG_NAME
Public Class Methods
new(db: nil)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 6 def initialize(db: nil) @conn = db.nil? ? ActiveRecord::Base.connection : db end
Public Instance Methods
all(param_item)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 14 def all(param_item) sql = "SELECT * FROM #{param_item.name}" res = exec(sql) #res.to_hash convert_keys(res) end
commit()
click to toggle source
# File lib/condition/storage/rails_db.rb, line 10 def commit @conn.commit_db_transaction end
delete(param_item)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 21 def delete(param_item) sql = "DELETE FROM #{param_item.name}" exec sql end
exec_after(param_item)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 48 def exec_after(param_item) param_item.options.each do |key| exec key end end
insert(param_item, default)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 26 def insert(param_item, default) default_item = default.item(param_item.name) if default prms = default_item ? default_item.params.merge(param_item.params) : param_item.params i1 = '' prms.each_pair do |k, v| if i1 != '' i1 = i1 + ', ' end i1 = i1 + k.to_s end param_item.values.each do |it| prms = default_item ? default_item.value.merge(it) : it ary = [] prms.each_pair do |k, v| ary << quote_value(v) end i2 = ary.join(',') sql = "INSERT INTO #{param_item.name.to_s} (#{i1}) VALUES (#{i2})" exec sql end end
Private Instance Methods
convert_keys(ary)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 65 def convert_keys(ary) res = [] ary.each do |row| res.push(row.deep_symbolize_keys) end res end
exec(sql)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 61 def exec(sql) @conn.exec_query(sql, LOG_NAME, []) end
quote_value(val)
click to toggle source
# File lib/condition/storage/rails_db.rb, line 55 def quote_value(val) return 'NULL' if val.nil? v = val.gsub(/'/, "''") "'#{v}'" end