Merge branch 'master' of git://github.com/jordan-brough/rails_upgrade

* 'master' of git://github.com/jordan-brough/rails_upgrade:
  preserve :only & :except options on resources
This commit is contained in:
Ryan Bigg 2011-04-08 08:06:56 +10:00
commit b3188a6a3d
2 changed files with 15 additions and 2 deletions

View File

@ -275,14 +275,17 @@ module Rails
end end
def to_route_code def to_route_code
# preserve :only & :except options
copied_options = @options.reject { |k,v| ![:only, :except].member?(k) }
copied_options_str = copied_options.empty? ? '' : ', ' + copied_options.inspect.gsub(/\A\{|\}\z/, '')
if !@children.empty? || @options.has_key?(:collection) || @options.has_key?(:member) if !@children.empty? || @options.has_key?(:collection) || @options.has_key?(:member)
prefix = ["#{route_method} :#{@name} do"] prefix = ["#{route_method} :#{@name}#{copied_options_str} do"]
lines = prefix + custom_methods + [@children.map {|r| r.to_route_code}.join("\n"), "end"] lines = prefix + custom_methods + [@children.map {|r| r.to_route_code}.join("\n"), "end"]
indent_lines(lines) indent_lines(lines)
else else
base = "#{route_method} :%s" base = "#{route_method} :%s#{copied_options_str}"
indent_lines [base % [@name]] indent_lines [base % [@name]]
end end
end end

View File

@ -139,4 +139,14 @@ end
assert_equal new_routes_code, result assert_equal new_routes_code, result
end end
def test_preserves_resources_except_option
route = Rails::Upgrading::FakeResourceRoute.new("hats", :except => [:index])
assert_equal "resources :hats, :except=>[:index]", route.to_route_code
end
def test_preserves_resources_only_option
route = Rails::Upgrading::FakeResourceRoute.new("hats", :only => :show)
assert_equal "resources :hats, :only=>:show", route.to_route_code
end
end end