Sha256: 60caf9556411b2ac4f6950b060e645eac41c5f9c1a9146879e9ad464be195f98

Contents?: true

Size: 681 Bytes

Versions: 15

Compression:

Stored size: 681 Bytes

Contents

module Weeler
  module Sluger
    extend ActiveSupport::Concern
    
    included do
      after_save :set_slug
      @@sluger_param = :title
    end

    def set_slug
      I18n.available_locales.each do |locale|
        Globalize.with_locale(locale) do
          if self.slug != generate_slug
            self.slug = generate_slug
            self.save!
          end
        end
      end
    end

    def generate_slug
      transliterated = "-#{I18n.transliterate(self[@@sluger_param]).parameterize}" if self[@@sluger_param].present?
      transliterated = "" if transliterated.blank?
      "#{self.id}#{transliterated}"
    end

    def to_param
      slug
    end

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
weeler-2.1.0 app/models/concerns/weeler/sluger.rb
weeler-2.0.1 app/models/concerns/weeler/sluger.rb
weeler-2.0.0 app/models/concerns/weeler/sluger.rb
weeler-1.6.0 app/models/concerns/weeler/sluger.rb
weeler-1.5.4 app/models/concerns/weeler/sluger.rb
weeler-1.5.2 app/models/concerns/weeler/sluger.rb
weeler-1.5.1 app/models/concerns/weeler/sluger.rb
weeler-1.4.0 app/models/concerns/weeler/sluger.rb
weeler-1.2.0 app/models/concerns/weeler/sluger.rb
weeler-1.1.0 app/models/concerns/weeler/sluger.rb
weeler-1.0.4 app/models/concerns/weeler/sluger.rb
weeler-1.0.3 app/models/concerns/weeler/sluger.rb
weeler-1.0.2 app/models/concerns/weeler/sluger.rb
weeler-1.0.1 app/models/concerns/weeler/sluger.rb
weeler-1.0.0 app/models/concerns/weeler/sluger.rb