Module: DataMapper::Is::Slug::InstanceMethods

Defined in:
lib/dm-is-slug/is/slug.rb

Overview

ClassMethods

Instance Method Summary collapse

Instance Method Details

#generate_slugObject



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

Returns:

  • (Boolean)


109
110
111
# File 'lib/dm-is-slug/is/slug.rb', line 109

def permanent_slug?
  self.class.permanent_slug?
end

#slug_propertyObject



121
122
123
# File 'lib/dm-is-slug/is/slug.rb', line 121

def slug_property
  self.class.slug_property
end

#slug_sourceObject



113
114
115
# File 'lib/dm-is-slug/is/slug.rb', line 113

def slug_source
  self.class.slug_source
end

#slug_source_propertyObject



117
118
119
# File 'lib/dm-is-slug/is/slug.rb', line 117

def slug_source_property
  self.class.slug_source_property
end

#to_paramObject



105
106
107
# File 'lib/dm-is-slug/is/slug.rb', line 105

def to_param
  [slug]
end