Sha256: 93d03de5daa2d8377315d239cda83f8b8fa66c649f76e556af539caeaed7f403

Contents?: true

Size: 792 Bytes

Versions: 81

Compression:

Stored size: 792 Bytes

Contents

module ManualSlug::Mongoid
  extend ActiveSupport::Concern
  include ::Mongoid::Slug

  def text_slug
    self._slugs.empty? ? '' : self._slugs.last
  end
  def text_slug=(slug)
    if slug.blank?
      self._slugs = []
    else
      self._slugs.delete(slug)
      self._slugs << slug
    end
  end

  module ClassMethods
    def manual_slug(field, options = {}, callback = true)
      options.merge!(permanent: true, history: true)
      slug field, options

      # we will create slugs manually when needed
      skip_callback :create, :before, :build_slug

      before_validation do
        self._slugs = self._slugs.map{ |s| s.strip }.select {|s| !s.blank? }

        if self._slugs.empty?
          self.build_slug
        end

        true
      end if callback
    end
  end

end


Version data entries

81 entries across 81 versions & 1 rubygems

Version Path
rocket_cms-0.15.0 lib/manual_slug/mongoid.rb
rocket_cms-0.14.0 lib/manual_slug/mongoid.rb
rocket_cms-0.13.6 lib/manual_slug/mongoid.rb
rocket_cms-0.13.5 lib/manual_slug/mongoid.rb
rocket_cms-0.13.4 lib/manual_slug/mongoid.rb
rocket_cms-0.13.3 lib/manual_slug/mongoid.rb
rocket_cms-0.13.2 lib/manual_slug/mongoid.rb
rocket_cms-0.13.1 lib/manual_slug/mongoid.rb
rocket_cms-0.13.0 lib/manual_slug/mongoid.rb
rocket_cms-0.12.3 lib/manual_slug/mongoid.rb
rocket_cms-0.12.2 lib/manual_slug/mongoid.rb
rocket_cms-0.12.1 lib/manual_slug/mongoid.rb
rocket_cms-0.12.0 lib/manual_slug/mongoid.rb
rocket_cms-0.11.7 lib/manual_slug/mongoid.rb
rocket_cms-0.11.5 lib/manual_slug/mongoid.rb
rocket_cms-0.11.4 lib/manual_slug/mongoid.rb
rocket_cms-0.11.3 lib/manual_slug/mongoid.rb
rocket_cms-0.11.2 lib/manual_slug/mongoid.rb
rocket_cms-0.11.1 lib/manual_slug/mongoid.rb
rocket_cms-0.11.0 lib/manual_slug/mongoid.rb