Class: KMDB::Event

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasProperties

included

Methods included from BelongsToUser

included

Methods included from CustomRecord

included

Class Method Details

.mass_create(values_strings) ⇒ Object



50
51
52
53
54
# File 'lib/kmdb/models/event.rb', line 50

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

.sql_for(hash) {|event_sql, properties_sql| ... } ⇒ Object

Yields:

  • (event_sql, properties_sql)


35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/kmdb/models/event.rb', line 35

def self.sql_for(hash)
  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')
  key = Key.get hash.delete('_n').scrub

  event_id = GlobalUID.get(:event)
  event_sql = sanitize_sql_array(["(?,?,?,?)", event_id, stamp, key, user.id])
  properties_sql = Property.sql_for(hash, stamp: stamp, user: user, event_id: event_id)
  
  yield event_sql, properties_sql
end

Instance Method Details

#nameObject



31
32
33
# File 'lib/kmdb/models/event.rb', line 31

def name
  KMDB::Key.find(n).string
end

#prop(name) ⇒ Object

return value of property



23
24
25
26
27
28
29
# File 'lib/kmdb/models/event.rb', line 23

def prop(name)
  if p = properties.named(name).first
    p.value
  else
    nil
  end
end