diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-05-21 03:04:17 +0200 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-05-21 03:04:17 +0200 |
commit | 5a036457620b7fb22027dc4f0c399871db6ed0c3 (patch) | |
tree | 240470960e6e1e408f5f2c765e30402fe07fcc4c | |
parent | e21d1614bb9006e69bf4bb2467b823aa12e64485 (diff) | |
download | rails-5a036457620b7fb22027dc4f0c399871db6ed0c3.tar.gz rails-5a036457620b7fb22027dc4f0c399871db6ed0c3.tar.bz2 rails-5a036457620b7fb22027dc4f0c399871db6ed0c3.zip |
Allow Module#depends_on to accept multiple modules
-rw-r--r-- | actionpack/lib/action_controller/base/verification.rb | 5 | ||||
-rw-r--r-- | activesupport/lib/active_support/dependency_module.rb | 10 | ||||
-rw-r--r-- | activesupport/test/dependency_module_test.rb | 11 |
3 files changed, 18 insertions, 8 deletions
diff --git a/actionpack/lib/action_controller/base/verification.rb b/actionpack/lib/action_controller/base/verification.rb index a513e9f40c..3fa5a105b1 100644 --- a/actionpack/lib/action_controller/base/verification.rb +++ b/actionpack/lib/action_controller/base/verification.rb @@ -4,10 +4,7 @@ module ActionController #:nodoc: # TODO : Remove the defined? check when new base is the main base if defined?(ActionController::Http) - depends_on AbstractController::Callbacks - depends_on Session - depends_on Flash - depends_on Renderer + depends_on AbstractController::Callbacks, Session, Flash, Renderer end # This module provides a class-level method for specifying that certain diff --git a/activesupport/lib/active_support/dependency_module.rb b/activesupport/lib/active_support/dependency_module.rb index 8c202acc8f..9872b9654b 100644 --- a/activesupport/lib/active_support/dependency_module.rb +++ b/activesupport/lib/active_support/dependency_module.rb @@ -16,10 +16,12 @@ module ActiveSupport end end - def depends_on(mod) - return if self < mod - @_dependencies ||= [] - @_dependencies << mod + def depends_on(*mods) + mods.each do |mod| + next if self < mod + @_dependencies ||= [] + @_dependencies << mod + end end end end diff --git a/activesupport/test/dependency_module_test.rb b/activesupport/test/dependency_module_test.rb index 07090d15a1..be7db0fa7b 100644 --- a/activesupport/test/dependency_module_test.rb +++ b/activesupport/test/dependency_module_test.rb @@ -42,6 +42,12 @@ class DependencyModuleTest < Test::Unit::TestCase end end + module Foo + extend ActiveSupport::DependencyModule + + depends_on Bar, Baz + end + def setup @klass = Class.new end @@ -74,4 +80,9 @@ class DependencyModuleTest < Test::Unit::TestCase assert_equal "baz", @klass.baz assert_equal [DependencyModuleTest::Bar, DependencyModuleTest::Baz], @klass.included_modules[0..1] end + + def test_depends_on_with_multiple_modules + @klass.send(:include, Foo) + assert_equal [DependencyModuleTest::Foo, DependencyModuleTest::Bar, DependencyModuleTest::Baz], @klass.included_modules[0..2] + end end |