Sha256: efd61ff7ea101d62e82d5e3a5439500fd2c0732a8b05110a865698147f91196f

Contents?: true

Size: 516 Bytes

Versions: 4

Compression:

Stored size: 516 Bytes

Contents

module OpenConferenceWare
  module SimpleSlugMixin
    def self.included(base)
      base.extend ClassMethods
      base.class_eval do
        class << self
          alias_method_chain :find, :slug
        end
      end
    end

    def to_param
      slug
    end

    module ClassMethods
      def find_with_slug(id, options = {})
        if id.is_a?(Symbol) || id.to_s =~ /\A\d+\Z/
          find_without_slug(id, options)
        else
          find_by_slug(id, options)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
open_conference_ware-1.0.0.pre4 app/mixins/open_conference_ware/simple_slug_mixin.rb
open_conference_ware-1.0.0.pre3 app/mixins/open_conference_ware/simple_slug_mixin.rb
open_conference_ware-1.0.0.pre2 app/mixins/open_conference_ware/simple_slug_mixin.rb
open_conference_ware-1.0.0.pre1 app/mixins/open_conference_ware/simple_slug_mixin.rb