module Impressionist::Impressionable

Public Instance Methods

impressionist_count(options={}) click to toggle source

Overides impressionist_count in order to provide mongoid compability

# File lib/impressionist/models/mongoid/impressionist/impressionable.rb, line 8
def impressionist_count(options={})

  # Uses these options as defaults unless overridden in options hash
  options.reverse_merge!(:filter => :request_hash, :start_date => nil, :end_date => Time.now)

  # If a start_date is provided, finds impressions between then and the end_date.
  # Otherwise returns all impressions
  imps = options[:start_date].blank? ? impressions :
    impressions.between(created_at: options[:start_date]..options[:end_date])


  # Count all distinct impressions unless the :all filter is provided
  distinct = options[:filter] != :all
  distinct ? imps.where(options[:filter].ne => nil).distinct(options[:filter]).count : imps.count
end