module FriendlyId::MethodScopes
Constants
- VERSION
Public Class Methods
included(model_class)
click to toggle source
Sets up behavior and configuration options for FriendlyId::MethodScopes's method_scopes slugs feature.
# File lib/friendly_id/method_scopes.rb, line 12 def self.included(model_class) model_class.class_eval do friendly_id_config.class.send :include, Configuration end end
setup(model_class)
click to toggle source
FriendlyId::Config.use will invoke this method when present, to allow loading dependent modules prior to overriding them when necessary.
# File lib/friendly_id/method_scopes.rb, line 6 def self.setup(model_class) model_class.friendly_id_config.use :slugged end
version_string()
click to toggle source
# File lib/friendly_id/method_scopes/version.rb, line 5 def self.version_string "FriendlyId::MethodScopes version #{FriendlyId::MethodScopes::VERSION}" end
Private Instance Methods
scope_for_slug_generator()
click to toggle source
# This doesn't work yet, but will be used to hook up to the history module def serialized_scope
friendly_id_config.scope_method_columns.sort.map { |column, method| "#{column}:#{send(method)}" }.join(",")
end
# File lib/friendly_id/method_scopes.rb, line 23 def scope_for_slug_generator relation = self.class.unscoped.friendly friendly_id_config.scope_method_columns.each do |column, method| relation = relation.where(column => send(method)) end primary_key_name = self.class.primary_key relation.where(self.class.arel_table[primary_key_name].not_eq(send(primary_key_name))) end
slug_generator()
click to toggle source
# File lib/friendly_id/method_scopes.rb, line 33 def slug_generator friendly_id_config.slug_generator_class.new(scope_for_slug_generator, friendly_id_config) end