Skip to content

Commit

Permalink
move optimize_helper? to the helper instance
Browse files Browse the repository at this point in the history
  • Loading branch information
tenderlove committed Jan 30, 2013
1 parent 532e122 commit d783ba2
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions actionpack/lib/action_dispatch/routing/route_set.rb
Expand Up @@ -173,8 +173,13 @@ def self.create(route, options)
end end


def initialize(route, options) def initialize(route, options)
@options = options @options = options
@segment_keys = route.segment_keys @segment_keys = route.segment_keys
@route = route
end

def optimize_helper?
@route.requirements.except(:controller, :action).empty?
end end


def url_else(t, args) def url_else(t, args)
Expand Down Expand Up @@ -216,14 +221,17 @@ def define_url_helper(route, name, options)
# end # end
# end # end
#END_EVAL #END_EVAL
ohelp = optimize_helper?(route)
ohelper = optimized_helper(route)
arg_size = route.required_parts.size


helper = UrlHelper.create(route, options.dup) helper = UrlHelper.create(route, options.dup)


ohelp = helper.optimize_helper?
ohelper = optimized_helper(route)
arg_size = route.required_parts.size

@module.module_eval do @module.module_eval do
define_method(name) do |*args| define_method(name) do |*args|
#helper.call t, args

if ohelp && args.size == arg_size && !args.last.is_a?(Hash) && optimize_routes_generation? if ohelp && args.size == arg_size && !args.last.is_a?(Hash) && optimize_routes_generation?
helper.url_if(self, eval("\"#{ohelper}\"")) helper.url_if(self, eval("\"#{ohelper}\""))
else else
Expand All @@ -235,11 +243,6 @@ def define_url_helper(route, name, options)
helpers << name helpers << name
end end


# Clause check about when we need to generate an optimized helper.
def optimize_helper?(route) #:nodoc:
route.requirements.except(:controller, :action).empty?
end

# Generates the interpolation to be used in the optimized helper. # Generates the interpolation to be used in the optimized helper.
def optimized_helper(route) def optimized_helper(route)
string_route = route.ast.to_s string_route = route.ast.to_s
Expand Down

0 comments on commit d783ba2

Please sign in to comment.