Sha256: dcbcdcee678c682944adfa4f396f853c975bcbc9a11c4c35fa5f8c11dd1a08f4

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

module Redistat
  module Model
    include Database
    include Options
    
    def self.included(base)
      base.extend(self)
    end
    
    
    #
    # statistics store/fetch methods
    # 
    
    def store(label, stats = {}, date = nil, opts = {}, meta = {})
      Event.new(self.name, label, date, stats, options.merge(opts), meta).save
    end
    alias :event :store

    def fetch(label, from, till, opts = {})
      find(label, from, till, opts).all
    end
    alias :lookup :fetch

    def find(label, from, till, opts = {})
      Finder.new( { :scope => self.name,
                    :label => label,
                    :from  => from,
                    :till  => till }.merge(options.merge(opts)) )
    end
    
    def find_event(event_id)
      Event.find(self.name, event_id)
    end
    
    
    #
    # options methods
    #
    
    option_accessor :depth
    option_accessor :scope
    option_accessor :store_event
    option_accessor :hashed_label
    option_accessor :label_indexing
    
    alias :class_name :scope
    
    def connect_to(opts = {})
      Connection.create(opts.merge(:ref => name))
      options[:connection_ref] = name
    end
    
    
    #
    # resource access methods
    #
    
    def connection
      db(options[:connection_ref])
    end
    alias :redis :connection
    
    def name
      options[:scope] || (@name ||= self.to_s)
    end
      
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redistat-0.3.0 lib/redistat/model.rb
redistat-0.2.6 lib/redistat/model.rb
redistat-0.2.5 lib/redistat/model.rb