Module: Pseudocephalopod::ActiveRecordMethods

Defined in:
lib/pseudocephalopod/active_record_methods.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Constant Summary collapse

AR_CLASS_ATTRIBUTE_NAMES =
%w(cached_slug_column slug_source slug_convertor_proc default_uuid_slug use_slug_history sync_slugs slug_scope use_slug_cache use_slug_to_param).map(&:to_sym)

Instance Method Summary collapse

Instance Method Details

#is_sluggable(source = :name, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/pseudocephalopod/active_record_methods.rb', line 5

def is_sluggable(source = :name, options = {})
  options.symbolize_keys!
  class_attribute *AR_CLASS_ATTRIBUTE_NAMES
  attr_accessor   :found_via_slug
  # Load extensions
  extend  ClassMethods
  include InstanceMethods
  extend Pseudocephalopod::Scopes
  extend Pseudocephalopod::Finders
  self.slug_source = source.to_sym
  set_slug_options options
  alias_method :to_param, :to_slug      if use_slug_to_param
  include Pseudocephalopod::SlugHistory if use_slug_history
  include Pseudocephalopod::Caching     if use_slug_cache
  before_validation :autogenerate_slug
end