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

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)


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

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

#impressionist_counter_cache_optionsObject



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

def impressionist_counter_cache_options
  if @impressionist_cache_options
    options = { :column_name => :impressions_count, :unique => false }
    options.merge!(@impressionist_cache_options) if @impressionist_cache_options.is_a?(Hash)
    options
  end
end

#impressionist_counter_caching?Boolean

Returns:

  • (Boolean)


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

def impressionist_counter_caching?
  impressionist_counter_cache_options.present?
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