module Sequel::Plugins::Slugging::DatasetMethods
Public Instance Methods
from_slug(pk_or_slug)
click to toggle source
# File lib/sequel/plugins/slugging.rb, line 149 def from_slug(pk_or_slug) pk = model.primary_key case pk_type = model.pk_type when :integer case pk_or_slug when Integer where(pk => pk_or_slug).first when String if pk_or_slug =~ INTEGER_REGEX where(pk => pk_or_slug.to_i).first else lookup_by_slug(pk_or_slug) end else raise "Argument to Dataset#from_slug needs to be a String or Integer" end when :uuid if record = lookup_by_slug(pk_or_slug) record elsif pk_or_slug =~ UUID_REGEX where(pk => pk_or_slug).first end else raise "Unexpected pk_type: #{pk_type.inspect}" end end
from_slug!(pk_or_slug)
click to toggle source
# File lib/sequel/plugins/slugging.rb, line 145 def from_slug!(pk_or_slug) from_slug(pk_or_slug) || raise(Sequel::NoMatchingRow) end
lookup_by_slug(slug)
click to toggle source
# File lib/sequel/plugins/slugging.rb, line 177 def lookup_by_slug(slug) if history = model.slugging_opts[:history] m = model if pk = m.db[history].where(sluggable_type: m.to_s, slug: slug).get(:sluggable_id) where(m.primary_key => pk).first end else where(slug: slug).first end end