Sha256: 95f24315d45d30b00b317d37cd3bf98330346153aa560630010afa0aa356d166

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

require 'action_dispatch/routing/mapper'

module ActionDispatch::Routing
  class Mapper
    module Resources
      class JoosyResource
        def initialize(context)
          @context = context
        end

        def method_missing(name, *args, &block)
          @context.send(name, *args, &block)
        end

        def resources(*args, &block)
          @context.resources(*args) do
            scope = @context.instance_eval { @scope }
            Joosy::Rails::Engine.resources << "#{scope[:path]}/#{scope[:scope_level_resource].path}"
            @context.joosy_resources(&block)
          end
        end
      end

      def joosy_resources(&block)
        JoosyResource.new(self).instance_eval(&block) if block_given?
      end
    end

    def joosy(route, options={})
      extender = route.last == '/' ? '(*x)' : '(/*x)'

      get route,
        controller:   options[:controller] || 'joosy/rails/serve',
        action:       options[:action] || 'index',
        as:           (options[:application] ? "joosy_#{options[:application]}" : "joosy"),
        defaults:     {route: route, application: options[:application]},
        anchor:       false,
        format:       false
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
joosy-rails-1.0.0.rc4 lib/joosy/rails/routing.rb
joosy-rails-1.0.0.RC3 lib/joosy/rails/routing.rb
joosy-rails-1.0.0.RC2 lib/joosy/rails/routing.rb
joosy-rails-1.0.0.RC1 lib/joosy/rails/routing.rb