aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-29 03:48:36 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-29 03:48:36 +0000
commit15960b37e82ba60455c480b1c23e1567255d3e05 (patch)
treed65ca77efdc1fe08e2d81aee9675d2ac6426499e
parent88aa6abf9c1afa2e14bec5f4bfb64357cb9c1052 (diff)
downloadruby-15960b37e82ba60455c480b1c23e1567255d3e05.tar.gz
ostruct.rb: respond_to?
* lib/ostruct.rb (OpenStruct): make respond_to? working on just-allocated objects for workaround of Psych. [ruby-core:72501] [Bug #11884] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog12
-rw-r--r--lib/ostruct.rb5
-rw-r--r--test/ostruct/test_ostruct.rb4
3 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c63a77cf3..146552f396 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Tue Dec 29 12:48:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/ostruct.rb (OpenStruct): make respond_to? working on
+ just-allocated objects for workaround of Psych.
+ [ruby-core:72501] [Bug #11884]
+
+Tue Dec 29 12:46:13 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/ostruct.rb (OpenStruct): make respond_to? working on
+ just-allocated objects for workaround of Psych.
+ [ruby-core:72501] [Bug #11884]
+
Tue Dec 29 10:35:00 2015 Kenta Murata <mrkn@mrkn.jp>
* test/mkmf/test_have_func.rb (test_have_func):
diff --git a/lib/ostruct.rb b/lib/ostruct.rb
index 5aea0465bd..e7b8ed4609 100644
--- a/lib/ostruct.rb
+++ b/lib/ostruct.rb
@@ -71,6 +71,11 @@
# of these properties compared to using a Hash or a Struct.
#
class OpenStruct
+ # :nodoc:
+ class << self
+ alias allocate new
+ end
+
#
# Creates a new OpenStruct object. By default, the resulting OpenStruct
# object will have no attributes.
diff --git a/test/ostruct/test_ostruct.rb b/test/ostruct/test_ostruct.rb
index 8c122b94a7..8b0424d2d8 100644
--- a/test/ostruct/test_ostruct.rb
+++ b/test/ostruct/test_ostruct.rb
@@ -23,6 +23,10 @@ class TC_OpenStruct < Test::Unit::TestCase
assert_respond_to(o, :a=)
end
+ def test_respond_to_allocated
+ assert_not_respond_to(OpenStruct.allocate, :a)
+ end
+
def test_equality
o1 = OpenStruct.new
o2 = OpenStruct.new