Sha256: eacd9f81d8369ea78c221b9583b30bc5f5dee53b9ddbd8c9a9db6d82cc99c0f6

Contents?: true

Size: 646 Bytes

Versions: 38

Compression:

Stored size: 646 Bytes

Contents

module Locomotive
  module Concerns
    module Shared
      module Slug
        extend ActiveSupport::Concern

        module ClassMethods

          def slugify_from(field)
            class_eval <<-EOV
              before_validation { |object| object.send(:normalize_slug, :#{field.to_s}) }
            EOV
          end

        end

        protected

        def normalize_slug(field)
          value = self.send(field)

          if self.slug.blank? && value.present?
            self.slug = value.clone
          end

          if self.slug.present?
            self.slug.permalink!
          end
        end

      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
locomotivecms-4.1.0.rc1 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.3 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.2 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.1 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.0 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.0.rc0 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.0.alpha3 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.4.1 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.0.alpha2 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-4.0.0.alpha1 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.4.0 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.3.0 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.3.0.rc3 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.3.0.rc2 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.1.2 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.2.1 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.3.0.rc1 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.2.0 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.2.0.rc2 app/models/locomotive/concerns/shared/slug.rb
locomotivecms-3.2.0.rc1 app/models/locomotive/concerns/shared/slug.rb