Project

General

Profile

Bug #12251

DelegateClass(OpenStruct) behavior in 2.3.0 different from 2.2

Added by dblock (Daniel Doubrovkine) about 4 years ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
[ruby-core:74822]
Tags:

Description

This came from https://github.com/ruby-grape/grape/issues/1348

require 'delegate'
require 'ostruct'

class AttributeTranslator < DelegateClass(OpenStruct)
  def initialize(attributes = {})
    ostruct = OpenStruct.new(attributes)
    super ostruct
  end
end

def namespace
  'foobar'
end

instance = AttributeTranslator.new(namespace: '/')
puts instance.namespace

Ruby 2.2.1

=> '/'

Ruby 2.3.0

=> 'foobar'

Halp?


Related issues

Related to Ruby master - Bug #12136: OpenStruct.new(format: :bar).send :format # => too few argumentsOpenActions
#1

Updated by marcandre (Marc-Andre Lafortune) almost 4 years ago

  • Related to Bug #12136: OpenStruct.new(format: :bar).send :format # => too few arguments added

Updated by matz (Yukihiro Matsumoto) about 1 month ago

Hmm, it was caused by OpenStruct performance pull-request. Maybe we should revert the PR?

Matz.

Also available in: Atom PDF