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