Sha256: e5aac15a1ec0938eae69e19c6029cef1de5dc068ef06ea092adb15b8b41e3cf9

Contents?: true

Size: 383 Bytes

Versions: 8

Compression:

Stored size: 383 Bytes

Contents

module Ohm
  module Slug
    def self.included(base)
      base.extend FinderOverride
    end

    module FinderOverride
      def [](id)
        super(id.to_i)
      end
    end

    def slug(str = to_s)
      str.gsub("'", "").gsub(/\p{^Alnum}/u, " ").strip.gsub(/\s+/, "-").downcase
    end
    module_function :slug

    def to_param
      "#{ id }-#{ slug }"
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ohm-contrib-0.0.40 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.39 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.38 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.37 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.36 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.35 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.34 lib/ohm/contrib/slug.rb
ohm-contrib-0.0.33 lib/ohm/contrib/slug.rb