Class: KMDB::Property

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
BelongsToUser, CustomRecord
Defined in:
lib/kmdb/models/property.rb

Class Method Summary collapse

Methods included from BelongsToUser

included

Methods included from CustomRecord

included

Class Method Details

.mass_create(values_strings) ⇒ Object



38
39
40
41
42
# File 'lib/kmdb/models/property.rb', line 38

def self.mass_create(values_strings)
  return if values_strings.empty?
  sql_insert = "INSERT INTO `#{table_name}` (`t`,`user_id`,`event_id`,`key`,`value`) VALUES\n"
  connection.execute(sql_insert + values_strings.join(",\n"))
end

.sql_for(hash, stamp: nil, user: nil, event_id: nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/kmdb/models/property.rb', line 17

def self.sql_for(hash, stamp: nil, user: nil, event_id: nil)
  user_name = hash.delete('_p')
  user ||= User.find_or_create(name: user_name)
  raise UserError.new "User missing for '#{user_name}'" unless user.present?

  stamp = Time.at hash.delete('_t') || stamp
  return if hash.empty?

  sql_values = []

  hash.each_pair do |prop_name,value|
    next if BlacklistedProperty.include?(prop_name)
    key = Key.get(prop_name)
    value = value[0...255].scrub
    sql_values << sanitize_sql_array(['(?,?,?,?,?)', stamp,user.id,event_id,key,value])
  end

  return if sql_values.empty?
  sql_values.join(",\n")
end