Module: DataMapper::Is::Slug::InstanceMethods
- Defined in:
- lib/dm-is-slug/is/slug.rb
Overview
ClassMethods
Instance Method Summary collapse
- #generate_slug ⇒ Object
- #permanent_slug? ⇒ Boolean
- #slug_property ⇒ Object
- #slug_source ⇒ Object
- #slug_source_property ⇒ Object
- #to_param ⇒ Object
Instance Method Details
#generate_slug ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/dm-is-slug/is/slug.rb', line 125 def generate_slug source = self.send(slug_source) raise ':source is invalid!' unless slug_source_property || self.respond_to?(slug_source) return if permanent_slug? && self.slug || source.nil? # we turn the source into a slug here self.slug = DataMapper::Is::Slug.escape(source) self.slug = "#{self.slug}-2" if self.class.first(:slug => self.slug) while self.class.first(:slug => self.slug) != nil i = self.slug[-1..-1].to_i + 1 self.slug = self.slug[0..-2] + i.to_s end end |
#permanent_slug? ⇒ Boolean
109 110 111 |
# File 'lib/dm-is-slug/is/slug.rb', line 109 def permanent_slug? self.class.permanent_slug? end |
#slug_property ⇒ Object
121 122 123 |
# File 'lib/dm-is-slug/is/slug.rb', line 121 def slug_property self.class.slug_property end |
#slug_source ⇒ Object
113 114 115 |
# File 'lib/dm-is-slug/is/slug.rb', line 113 def slug_source self.class.slug_source end |
#slug_source_property ⇒ Object
117 118 119 |
# File 'lib/dm-is-slug/is/slug.rb', line 117 def slug_source_property self.class.slug_source_property end |
#to_param ⇒ Object
105 106 107 |
# File 'lib/dm-is-slug/is/slug.rb', line 105 def to_param [slug] end |