Module: FriendlyId::I18n
- Defined in:
- lib/para/i18n/friendly_id.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #set_friendly_id(text, locale = nil) ⇒ Object
- #set_slug(normalized_slug = nil) ⇒ Object
- #should_generate_new_friendly_id? ⇒ Boolean
Class Method Details
.included(model_class) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/para/i18n/friendly_id.rb', line 10 def included(model_class) model_class.extend(ClassMethods) # Support for friendly finds on associations for Rails 4.0.1 and above. # # Borrowed from FriendlyId::Finders module # if ::ActiveRecord.const_defined?('AssociationRelation') association_relation_delegate_class = model_class.relation_delegate_class(::ActiveRecord::AssociationRelation) association_relation_delegate_class.send(:include, ClassMethods) end end |
.setup(model_class) ⇒ Object
6 7 8 |
# File 'lib/para/i18n/friendly_id.rb', line 6 def setup(model_class) model_class.friendly_id_config.use :slugged end |
Instance Method Details
#set_friendly_id(text, locale = nil) ⇒ Object
24 25 26 27 28 |
# File 'lib/para/i18n/friendly_id.rb', line 24 def set_friendly_id(text, locale = nil) ::I18n.with_locale(locale || ::I18n.locale) do set_slug(normalize_friendly_id(text)) end end |
#set_slug(normalized_slug = nil) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/para/i18n/friendly_id.rb', line 34 def set_slug(normalized_slug = nil) return unless should_generate_new_friendly_id? candidates = FriendlyId::Candidates.new(self, normalized_slug || send(friendly_id_config.base)) slug = slug_generator.generate(candidates) || resolve_friendly_id_conflict(candidates) self.slug = slug end |
#should_generate_new_friendly_id? ⇒ Boolean
30 31 32 |
# File 'lib/para/i18n/friendly_id.rb', line 30 def should_generate_new_friendly_id? translation_for(::I18n.locale)[friendly_id_config.slug_column].blank? end |