module Dibbler::Models::HierarchicalSlugGenerator
Public Instance Methods
compose_slug_translation(locale)
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 116 def compose_slug_translation(locale) self._compose_slug_translation(locale) end
destroy_slugs_after(options = {})
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 97 def destroy_slugs_after(options = {}) # Propagate to other models if options[:disable_propagation] != true # Propagate to parent self.parent.generate_slugs(disable_propagation: true) if self.parent end end
destroy_slugs_before(options = {})
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 76 def destroy_slugs_before(options = {}) # Destroy slug of this model unless Dibbler.slug_model.nil? I18n.available_locales.each do |locale| self._destroy_slug(Dibbler.slug_model, locale) end end # Propagate to other models if options[:disable_propagation] != true # Propagate to descendants self.descendants.each do |descendant| descendant.destroy_slugs_before(disable_propagation: true) end end end
disable_slug_generator()
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 35 def disable_slug_generator @disable_slug_generator = true end
enable_slug_generator()
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 39 def enable_slug_generator @disable_slug_generator = false end
generate_slugs(options = {})
click to toggle source
************************************************************* Hooks *************************************************************
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 47 def generate_slugs(options = {}) return if @disable_slug_generator ActiveRecord::Base.transaction do # Generate slug in this model unless Dibbler.slug_model.nil? I18n.available_locales.each do |locale| self._destroy_slug_was(Dibbler.slug_model, locale) self._generate_slug(Dibbler.slug_model, locale) end end end # Propagate to other models if options[:disable_propagation] != true # Propagate to parent self.parent.generate_slugs(disable_propagation: true) if self.parent # Propagate to descendants self.descendants.each do |descendant| descendant.generate_slugs(disable_propagation: true) end end end
url_original()
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 109 def url_original if @url_original.nil? @url_original = self._url_original end @url_original end
Protected Instance Methods
_compose_slug_translation(locale)
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 130 def _compose_slug_translation(locale) raise "To be defined in application." end
_destroy_slug(slug_model, locale)
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 138 def _destroy_slug(slug_model, locale) raise "To be defined in application." end
_destroy_slug_was(slug_model, locale)
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 142 def _destroy_slug_was(slug_model, locale) raise "To be defined in application." end
_generate_slug(slug_model, locale)
click to toggle source
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 134 def _generate_slug(slug_model, locale) raise "To be defined in application." end
_url_original()
click to toggle source
************************************************************* Callbacks to be defined in application *************************************************************
# File lib/dibbler/models/hierarchical_slug_generator.rb, line 126 def _url_original raise "To be defined in application." end