diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-10 11:51:24 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-10 11:51:24 -0700 |
commit | d9603cb09f5530510183f3bb8232d73e44eaef08 (patch) | |
tree | e3b85f00daaba6e1f7ca8841be83a74834d16836 | |
parent | 6a9d1925dc3fc1d54470cb548a595698429a1047 (diff) | |
download | rails-d9603cb09f5530510183f3bb8232d73e44eaef08.tar.gz rails-d9603cb09f5530510183f3bb8232d73e44eaef08.tar.bz2 rails-d9603cb09f5530510183f3bb8232d73e44eaef08.zip |
pass `shallow` in to the resource constructor
this lets us remove the setter and make the Resource object Read-Only
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index c93a64fcf4..5158df8ac9 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -1056,14 +1056,14 @@ module ActionDispatch class Resource #:nodoc: attr_reader :controller, :path, :options, :param - def initialize(entities, api_only = false, options = {}) + def initialize(entities, api_only, shallow, options = {}) @name = entities.to_s @path = (options[:path] || @name).to_s @controller = (options[:controller] || @name).to_s @as = options[:as] @param = (options[:param] || :id).to_sym @options = options - @shallow = false + @shallow = shallow @api_only = api_only end @@ -1129,17 +1129,13 @@ module ActionDispatch "#{path}/:#{nested_param}" end - def shallow=(value) - @shallow = value - end - def shallow? @shallow end end class SingletonResource < Resource #:nodoc: - def initialize(entities, api_only, options) + def initialize(entities, api_only, shallow, options) super @as = nil @controller = (options[:controller] || plural).to_s @@ -1201,7 +1197,7 @@ module ActionDispatch return self end - resource_scope(:resource, SingletonResource.new(resources.pop, api_only?, options)) do + resource_scope(:resource, SingletonResource.new(resources.pop, api_only?, @scope[:shallow], options)) do yield if block_given? concerns(options[:concerns]) if options[:concerns] @@ -1359,7 +1355,7 @@ module ActionDispatch return self end - resource_scope(:resources, Resource.new(resources.pop, api_only?, options)) do + resource_scope(:resources, Resource.new(resources.pop, api_only?, @scope[:shallow], options)) do yield if block_given? concerns(options[:concerns]) if options[:concerns] @@ -1687,7 +1683,6 @@ module ActionDispatch end def resource_scope(kind, resource) #:nodoc: - resource.shallow = @scope[:shallow] @scope = @scope.new(:scope_level_resource => resource) @nesting.push(resource) |