class Ristretta::Event

Attributes

event_attrs[R]
timestamp[R]

Public Class Methods

create(event_subject, event_type, event_attrs, timestamp = Time.now.to_i) click to toggle source
# File lib/ristretta/event.rb, line 10
def Event.create(event_subject, event_type, event_attrs, timestamp = Time.now.to_i)
  Ristretta.client.zadd(Ristretta.event_key({
    event_type: event_type,
    event_subject: event_subject
  }), timestamp, (event_attrs.merge(timestamp: timestamp.to_i)).to_json, nx: true)
end
find(options = {}) click to toggle source
# File lib/ristretta/event.rb, line 17
def Event.find(options = {})
  raise(Exceptions::SubjectNotSpecified, "event_subject must be specified") if options[:event_subject].nil?
  raise(Exceptions::TypeNotSpecified, "event_type must be specified") if options[:event_type].nil?

  start_timestamp = options[:since].to_i
  end_timestamp = options[:until] || Time.now.to_i
  
  Ristretta.client.zrangebyscore(Ristretta.event_key(options), start_timestamp, end_timestamp, with_scores: true).collect do |event_data|
    self.new(event_data.first, event_data.last.to_i)
  end
end
new(event_attrs, timestamp) click to toggle source
# File lib/ristretta/event.rb, line 5
def initialize(event_attrs, timestamp)
  @event_attrs = JSON.parse(event_attrs)
  @timestamp = timestamp.to_i
end