aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-08-05 23:16:08 +0200
committerPiotr Sarnacki <drogus@gmail.com>2010-09-05 13:44:37 +0200
commit8958f332bbb552e87fd9f8c78dd11bdeab7897fc (patch)
tree48c2a327173b31427640d2ec6f29767dbb1cd4a7 /actionpack/lib
parente6b93fa6db645d0acf18fc36d99ac8e13cb2091a (diff)
downloadrails-8958f332bbb552e87fd9f8c78dd11bdeab7897fc.tar.gz
rails-8958f332bbb552e87fd9f8c78dd11bdeab7897fc.tar.bz2
rails-8958f332bbb552e87fd9f8c78dd11bdeab7897fc.zip
Implemented resources :foos, :except => :all option
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index cee3fd880c..f52fb91e97 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -611,9 +611,18 @@ module ActionDispatch
end
def actions
- if only = @options[:only]
+ only, except = @options.values_at(:only, :except)
+ if only == :all || except == :none
+ only = nil
+ except = []
+ elsif only == :none || except == :all
+ only = []
+ except = nil
+ end
+
+ if only
Array(only).map(&:to_sym)
- elsif except = @options[:except]
+ elsif except
default_actions - Array(except).map(&:to_sym)
else
default_actions