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