Sha256: 81ff3c7d497276020f47e7375c07846668fbc02f92e7e51ebdddc7f242be5f2b

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

module Puffer
  class Resource
    module Routing

      include ActionController::UrlFor
      include Rails.application.routes.url_helpers

      def collection_url *args
        polymorphic_url *route_args(route_member(model), *args)
      end

      def member_url *args
        suggest = args.shift if args.first.respond_to? :to_key
        polymorphic_url *route_args(route_member(suggest), *args)
      end

      def new_url *args
        new_polymorphic_url *route_args(name.to_s.singularize, *args)
      end

      def edit_url *args
        suggest = args.shift if args.first.respond_to? :to_key
        edit_polymorphic_url *route_args(route_member(suggest), *args)
      end

      def route_args *args
        options = args.extract_options!
        resource = Array.wrap(args)
        return [scope] + ancestors.map(&:route_member) + resource, options
      end

      def route_member suggest = nil
        plural? ? (suggest || member) : name.to_s.singularize
      end

      def default_url_options *args
        Puffer::Base.default_url_options(*args)
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
puffer-0.0.32 lib/puffer/resource/routing.rb
puffer-0.0.31 lib/puffer/resource/routing.rb
puffer-0.0.30 lib/puffer/resource/routing.rb