diff options
author | Akira Matsuda <ronnie@dio.jp> | 2017-01-15 02:38:21 +0900 |
---|---|---|
committer | Akira Matsuda <ronnie@dio.jp> | 2017-01-15 02:44:03 +0900 |
commit | d5fbb04fab6f598b2ad5a4763672504fa81466af (patch) | |
tree | 804cde73dfec98ebb5aa220966ddc531a0dc5ffd /activesupport/test | |
parent | c0c331bfc8ba66efa310c1c065e3b6349d97d9b2 (diff) | |
download | rails-d5fbb04fab6f598b2ad5a4763672504fa81466af.tar.gz rails-d5fbb04fab6f598b2ad5a4763672504fa81466af.tar.bz2 rails-d5fbb04fab6f598b2ad5a4763672504fa81466af.zip |
AS::ArrayInquirer#respond_to_missing? should fallback to super
in case Array or any other ancestor class' respond_to_missing? was defined.
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/array_inquirer_test.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/activesupport/test/array_inquirer_test.rb b/activesupport/test/array_inquirer_test.rb index 4d3f5b001c..3ed48dd49d 100644 --- a/activesupport/test/array_inquirer_test.rb +++ b/activesupport/test/array_inquirer_test.rb @@ -38,4 +38,18 @@ class ArrayInquirerTest < ActiveSupport::TestCase assert_instance_of ActiveSupport::ArrayInquirer, result assert_equal @array_inquirer, result end + + def test_respond_to_fallback_to_array_respond_to + arr = ActiveSupport::ArrayInquirer.new([:x]) + # This kind of emulates a situation that Array#respond_to_missing? is defined + arr.singleton_class.class_eval do + def respond_to_missing?(name, _include_private = false) + (name == :foo) || super + end + end + + assert_respond_to arr, :can_you_hear_me? + assert_respond_to arr, :foo + assert_not_respond_to arr, :nope + end end |