lib/trackoid/aggregates.rb in trackoid-0.2.0 vs lib/trackoid/aggregates.rb in trackoid-0.3.0

- old
+ new

@@ -1,9 +1,12 @@ # encoding: utf-8 module Mongoid #:nodoc: module Tracking #:nodoc: module Aggregates + + DEPRECATED_TOKENS = ['hour', 'hours'] + # This module includes aggregate data extensions to Trackoid instances def self.included(base) base.class_eval do extend ClassMethods @@ -53,12 +56,12 @@ # <tt>TestModelAggregates.where(:ns => "browsers", :key => "explorer").first</tt> # # But you are encouraged to use Trackoid methods whenever possible. # def aggregate(name, &block) - raise Errors::AggregationAlreadyDefined.new(self.name, name) if - aggregate_fields.has_key? name + raise Errors::AggregationAlreadyDefined.new(self.name, name) if aggregate_fields.has_key? name + raise Errors::AggregationNameDeprecated.new(name) if DEPRECATED_TOKENS.include? name.to_s define_aggregate_model if aggregate_klass.nil? has_many_related internal_accessor_name(name), :class_name => aggregate_klass.to_s add_aggregate_field(name, block) create_aggregation_accessors(name) @@ -81,9 +84,10 @@ end # Defines the aggregation model. It checks for class name conflicts def define_aggregate_model raise Errors::ClassAlreadyDefined.new(internal_aggregates_name) if foreign_class_defined? + parent = self define_klass do include Mongoid::Document include Mongoid::Tracking