Module: Impressionist::Impressionable::ClassMethods

Defined in:
app/models/impressionist/impressionable.rb,
lib/impressionist/models/mongoid/impressionist/impressionable.rb,
lib/impressionist/models/mongo_mapper/impressionist/impressionable.rb,
lib/impressionist/models/active_record/impressionist/impressionable.rb

Constant Summary collapse

DEFAULT_CACHE =
{ :counter_cache => false, :column_name => :impressions_count, :unique => false }

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#impressionist_cache_optionsObject

Returns the value of attribute impressionist_cache_options.



6
7
8
# File 'app/models/impressionist/impressionable.rb', line 6

def impressionist_cache_options
  @impressionist_cache_options
end

Instance Method Details

#counter_caching?Boolean

Returns:

  • (Boolean)


20
21
22
23
# File 'app/models/impressionist/impressionable.rb', line 20

def counter_caching?
    ::ActiveSupport::Deprecation.warn("#counter_caching? is deprecated; please use #impressionist_counter_caching? instead")
    impressionist_counter_caching?
end

#define_associationObject



14
15
16
17
18
# File 'lib/impressionist/models/active_record/impressionist/impressionable.rb', line 14

def define_association
  has_many(:impressions,
  :as => :impressionable,
  :dependent => :destroy)
end

#imp_cache_options_set(options) ⇒ Object



20
21
22
# File 'lib/impressionist/models/active_record/impressionist/impressionable.rb', line 20

def imp_cache_options_set(options)
  @impressionist_cache_options = options
end

#impressionist_counter_cache_optionsObject



10
11
12
13
# File 'app/models/impressionist/impressionable.rb', line 10

def impressionist_counter_cache_options
  @impressionist_cache_options ||= {}
  @impressionist_cache_options.reverse_merge!(DEFAULT_CACHE)
end

#impressionist_counter_caching?Boolean

true or false

Returns:

  • (Boolean)


16
17
18
# File 'app/models/impressionist/impressionable.rb', line 16

def impressionist_counter_caching?
  impressionist_counter_cache_options[:counter_cache]
end

#is_impressionable(options = {}) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/impressionist/models/mongoid/impressionist/impressionable.rb', line 8

def is_impressionable(options={})
	has_many :impressions, as: :impressionable, dependent: :destroy
  	@impressionist_cache_options = options[:counter_cache]
  	if !@impressionist_cache_options.nil?
  		opts = impressionist_counter_cache_options
  		field opts[:column_name], type: Integer
  	end
end