Sha256: 40ecdb4fe22d3337c10ef76e41b9d86e66acac3db67c6b138d8a44e60cb44d04
Contents?: true
Size: 871 Bytes
Versions: 1
Compression:
Stored size: 871 Bytes
Contents
require "ohm" require "nest" module Minuteman class Model < ::Ohm::Model attribute :type attribute :time def self.find(*args) looked_up = "#{self.name}::#{args.first[:type]}:#{args.first[:time]}:id" potential_id = Minuteman.config.redis.call("GET", looked_up) return nil if !potential_id event = self[potential_id] event.type = args.first[:type] event.time = args.first[:time] event end def self.find_or_create(*args) find(*args) || create(*args) end def self.create(*args) event = super(*args) Minuteman.config.redis.call("SADD", "#{Minuteman.prefix}::Events", event.type) Minuteman.config.redis.call("SET", "#{event.key}:id", event.id) event end def key Nest.new("#{self.class.name}::#{type}:#{time}", Minuteman.config.redis) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
minuteman-3.0.0 | lib/minuteman/model.rb |