diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ostruct.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/ostruct.rb b/lib/ostruct.rb index e255a5e704..e00e281d6d 100644 --- a/lib/ostruct.rb +++ b/lib/ostruct.rb @@ -223,7 +223,15 @@ class OpenStruct elsif name.end_with?('!') true else - method!(name).owner < OpenStruct + owner = method!(name).owner + if owner.class == ::Class + owner < ::OpenStruct + else + self.class.ancestors.any? do |mod| + return false if mod == ::OpenStruct + mod == owner + end + end end end |