Write spec for class var behavior
Reported by Evan Phoenix | May 18th, 2008 @ 07:22 PM | in 1.0 preview
module B
def blah
@@blah ||= []
p @@blah.include?(1)
end
end
class A
extend B
end
A.blah
This code creates class variable @@blah on B, not A. Rubinius recently fixed it's handling of this, but a spec needs to be written to document the behavior.
Comments and changes to this ticket
-

Patrick Farley December 5th, 2008 @ 12:12 PM
Rubinius behavior still seems to be different.
describe "Module" do it "should assign ownership of class variables to the Modules metaclass when class variables are defined as part of method evaluation" do declare_class_variable = Module.new do def define_class_var @@class_var = :value end end access_class_variable = Module.new do extend declare_class_variable end access_class_variable.define_class_var declare_class_variable.class_variable_defined?("@@class_var").should == false access_class_variable.class_variable_defined?("@@class_var").should == false declare_class_variable.instance_eval("class << self; self; end").class_variable_defined?("@@class_var").should == true end end patrick-farleys-computer:~/rubinius/code pfarley$ mspec/bin/mspec -tr spec/core/module/class_variable_spec.rb ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.1] . Finished in 0.005960 seconds 1 file, 1 example, 3 expectations, 0 failures, 0 errors patrick-farleys-computer:~/rubinius/code pfarley$ mspec/bin/mspec spec/core/module/class_variable_spec.rb F 1) Module should assign ownership of class variables to the Modules metaclass when class variables are defined as part of method evaluation FAILED Expected true to equal false Expectation.fail_with at /Users/pfarley/rubinius/code/mspec/lib/mspec/expectations/expectations.rb:10 <snip> Finished in 0.047044 seconds 1 file, 1 example, 1 expectation, 1 failure, 0 errors -

-
Ryan Davis June 23rd, 2008 @ 03:39 PM
- → Assigned user changed from to Ryan Davis
-
Brian Ford December 3rd, 2008 @ 11:05 PM
- → Tag changed from to compatibility patch
- → Assigned user changed from Ryan Davis to Brian Ford
-
Federico Builes January 6th, 2009 @ 09:30 AM
- → State changed from new to resolved
Rubyspec commit 8dd2d220 includes specs for these cases, marking as resolved. Reopen if needed.
Please Login or create a free account to add a new comment.
You can update this ticket by sending an email to from your email client. (help)
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
