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

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

Overview

ClassMethods

Instance Method Summary collapse

Instance Method Details

#permanent_slug?Boolean

Returns:

  • (Boolean)


132
133
134
# File 'lib/dm-is-slug/is/slug.rb', line 132

def permanent_slug?
  self.class.permanent_slug?
end

#slug_propertyObject



144
145
146
# File 'lib/dm-is-slug/is/slug.rb', line 144

def slug_property
  self.class.slug_property
end

#slug_sourceObject



136
137
138
# File 'lib/dm-is-slug/is/slug.rb', line 136

def slug_source
  self.class.slug_source
end

#slug_source_propertyObject



140
141
142
# File 'lib/dm-is-slug/is/slug.rb', line 140

def slug_source_property
  self.class.slug_source_property
end

#slug_source_valueObject



148
149
150
# File 'lib/dm-is-slug/is/slug.rb', line 148

def slug_source_value
  self.send(slug_source)
end

#stale_slug?Boolean

The slug is not stale if

  1. the slug is permanent, and slug column has something valid in it

  2. the slug source value is nil or empty

  3. scope is not changed

Returns:

  • (Boolean)


156
157
158
159
160
161
162
163
164
# File 'lib/dm-is-slug/is/slug.rb', line 156

def stale_slug?
  !(
    (permanent_slug? && !slug.blank?) ||
    slug_source_value.blank?
  ) ||
  !(!new? && (dirty_attributes.keys.map(&:name) &
              (self.class.slug_options[:scope] || [])).compact.blank?
  )
end

#to_paramObject



128
129
130
# File 'lib/dm-is-slug/is/slug.rb', line 128

def to_param
  [slug]
end