aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-05-21 03:04:17 +0200
committerPratik Naik <pratiknaik@gmail.com>2009-05-21 03:04:17 +0200
commit5a036457620b7fb22027dc4f0c399871db6ed0c3 (patch)
tree240470960e6e1e408f5f2c765e30402fe07fcc4c
parente21d1614bb9006e69bf4bb2467b823aa12e64485 (diff)
downloadrails-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.rb5
-rw-r--r--activesupport/lib/active_support/dependency_module.rb10
-rw-r--r--activesupport/test/dependency_module_test.rb11
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