Skip to content

Commit

Permalink
rack-mount 0.4
Browse files Browse the repository at this point in the history
  • Loading branch information
josh committed Dec 26, 2009
1 parent f53c363 commit 673fa7f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 21 deletions.
2 changes: 1 addition & 1 deletion actionpack/actionpack.gemspec
Expand Up @@ -18,7 +18,7 @@ Gem::Specification.new do |s|
s.add_dependency('activemodel', '= 3.0.pre')
s.add_dependency('rack', '~> 1.1.0')
s.add_dependency('rack-test', '~> 0.5.0')
s.add_dependency('rack-mount', '~> 0.3.3')
s.add_dependency('rack-mount', '~> 0.4.0')
s.add_dependency('erubis', '~> 2.6.5')

s.require_path = 'lib'
Expand Down
38 changes: 19 additions & 19 deletions actionpack/lib/action_dispatch/routing/mapper.rb
Expand Up @@ -19,9 +19,9 @@ def call(env)

@constraints.each { |constraint|
if constraint.respond_to?(:matches?) && !constraint.matches?(req)
return [ 417, {}, [] ]
return [ 404, {'X-Cascade' => 'pass'}, [] ]
elsif constraint.respond_to?(:call) && !constraint.call(req)
return [ 417, {}, [] ]
return [ 404, {'X-Cascade' => 'pass'}, [] ]
end
}

Expand All @@ -34,11 +34,11 @@ def initialize(set, scope, args)
@set, @scope = set, scope
@path, @options = extract_path_and_options(args)
end

def to_route
[ app, conditions, requirements, defaults, @options[:as] ]
end

private
def extract_path_and_options(args)
options = args.extract_options!
Expand All @@ -49,18 +49,18 @@ def extract_path_and_options(args)
else
path = args.first
end

[ normalize_path(path), options ]
end

def normalize_path(path)
path = nil if path == ""
path = "#{@scope[:path]}#{path}" if @scope[:path]
path = Rack::Mount::Utils.normalize_path(path) if path
path = Rack::Mount::Utils.normalize_path(path) if path

raise ArgumentError, "path is required" unless path
path

path
end


Expand All @@ -74,7 +74,7 @@ def app
def conditions
{ :path_info => @path }.merge(constraints).merge(request_method_condition)
end

def requirements
@requirements ||= returning(@options[:constraints] || {}) do |requirements|
requirements.reverse_merge!(@scope[:constraints]) if @scope[:constraints]
Expand All @@ -96,30 +96,30 @@ def defaults
else
default_controller ? { :controller => default_controller } : {}
end

if defaults[:controller].blank? && segment_keys.exclude?("controller")
raise ArgumentError, "missing :controller"
end

if defaults[:action].blank? && segment_keys.exclude?("action")
raise ArgumentError, "missing :action"
end

defaults
end
end


def blocks
if @options[:constraints].present? && !@options[:constraints].is_a?(Hash)
block = @options[:constraints]
else
block = nil
end
((@scope[:blocks] || []) + [ block ]).compact

((@scope[:blocks] || []) + [ block ]).compact
end

def constraints
@constraints ||= requirements.reject { |k, v| segment_keys.include?(k.to_s) || k == :controller }
end
Expand All @@ -132,7 +132,7 @@ def request_method_condition
{ }
end
end

def segment_keys
@segment_keys ||= Rack::Mount::RegexpWithNamedGroups.new(
Rack::Mount::Strexp.compile(@path, requirements, SEPARATORS)
Expand All @@ -142,7 +142,7 @@ def segment_keys
def to
@options[:to]
end

def default_controller
@scope[:controller].to_s if @scope[:controller]
end
Expand Down Expand Up @@ -520,4 +520,4 @@ def with_scope_level(kind, resource = parent_resource)
include Resources
end
end
end
end
2 changes: 1 addition & 1 deletion actionpack/lib/action_dispatch/routing/route_set.rb
Expand Up @@ -21,7 +21,7 @@ def call(env)
prepare_params!(params)

unless controller = controller(params)
return [417, {}, []]
return [404, {'X-Cascade' => 'pass'}, []]
end

controller.action(params[:action]).call(env)
Expand Down

0 comments on commit 673fa7f

Please sign in to comment.