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:
commit
b3188a6a3d
|
@ -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
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue