Module: Sequel::Plugins::Sluggable::ClassMethods

Defined in:
lib/sequel_sluggable.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sluggable_optionsObject

Returns the value of attribute sluggable_options.



36
37
38
# File 'lib/sequel_sluggable.rb', line 36

def sluggable_options
  @sluggable_options
end

Instance Method Details

#find_by_pk_or_slug(value) ⇒ Sequel::Model?

Finds model by slug or PK

Returns:

  • (Sequel::Model, nil)


41
42
43
# File 'lib/sequel_sluggable.rb', line 41

def find_by_pk_or_slug(value)
  value.to_s =~ /^\d+$/ ? self[value] : self.find_by_slug(value)
end

#find_by_slug(value) ⇒ Sequel::Model?

Finds model by Slug column

Returns:

  • (Sequel::Model, nil)


48
49
50
# File 'lib/sequel_sluggable.rb', line 48

def find_by_slug(value)
  self[@sluggable_options[:target] => value.chomp]
end

#inherited(klass) ⇒ Object

Propagate settings to the child classes

Parameters:

  • Child (Class)

    class



55
56
57
58
# File 'lib/sequel_sluggable.rb', line 55

def inherited(klass)
  super
  klass.sluggable_options = self.sluggable_options.dup
end