Issue #4179 has been updated by Marc-Andre Lafortune.

Status changed from Open to Closed
Target version set to 1.9.3
% Done changed from 0 to 100

Thanks for the patch.
It was modified so that:
 - s[] also raises an error
 - s[1]=2 states that "[]=" is the missing method (not "[]")

Applied as r31753, RubySpec updated as 9d36c78
----------------------------------------
Bug #4179: OpenStruct#method_missing handles #[]= wrongly
http://redmine.ruby-lang.org/issues/4179

Author: Caius Durling
Status: Closed
Priority: Normal
Assignee: 
Category: lib
Target version: 1.9.3
ruby -v: ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] 


=begin
 ## Code to reproduce:
 
     require "ostruct"
     OpenStruct.new[:foo] = true
 
 ## Expected
 
 `NoMethodError` to be raised, as `OpenStruct#[]=` is not a defined method.
 
 ## Actual
 
 `wrong number of arguments (2 for 1) (ArgumentError)`
 
 ## Notes
 
 I wrote a test case to check that it would raise `NoMethodError` when you call `OpenStruct#[]=`, and then amended `OpenStruct#method_missing` to fix the bug. Patch attached with both test case (including a check that `OpenStruct#[]` raises a `NoMethodError` too) and the fix in it.
=end



-- 
http://redmine.ruby-lang.org