Module: Pseudocephalopod::ActiveRecordMethods::InstanceMethods
- Defined in:
- lib/pseudocephalopod/active_record_methods.rb
Instance Method Summary collapse
- #autogenerate_slug ⇒ Object
- #generate_slug ⇒ Object
- #generate_slug! ⇒ Object
- #has_better_slug? ⇒ Boolean
- #should_generate_slug? ⇒ Boolean
- #slug_scope_key(nested_scope = []) ⇒ Object
- #to_slug ⇒ Object
Instance Method Details
#autogenerate_slug ⇒ Object
47 48 49 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 47 def autogenerate_slug generate_slug if should_generate_slug? end |
#generate_slug ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 28 def generate_slug slug_value = send(self.slug_source) slug_value = self.slug_convertor_proc.call(slug_value) if slug_value.present? if slug_value.present? scope = self.class.other_than(self).slug_scope_relation(self) slug_value = Pseudocephalopod.next_value(scope, slug_value) write_attribute self.cached_slug_column, slug_value elsif self.default_uuid_slug write_attribute self.cached_slug_column, Pseudocephalopod.generate_uuid_slug else write_attribute self.cached_slug_column, nil end end |
#generate_slug! ⇒ Object
42 43 44 45 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 42 def generate_slug! generate_slug save :validate => false end |
#has_better_slug? ⇒ Boolean
55 56 57 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 55 def has_better_slug? found_via_slug.present? && found_via_slug != to_slug end |
#should_generate_slug? ⇒ Boolean
51 52 53 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 51 def should_generate_slug? send(self.cached_slug_column).blank? || (self.sync_slugs && send(:"#{self.slug_source}_changed?")) end |
#slug_scope_key(nested_scope = []) ⇒ Object
59 60 61 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 59 def slug_scope_key(nested_scope = []) self.class.slug_scope_key(nested_scope) end |
#to_slug ⇒ Object
24 25 26 |
# File 'lib/pseudocephalopod/active_record_methods.rb', line 24 def to_slug cached_slug.present? ? cached_slug : id.to_s end |