Skip to content

Commit 6d22965

Browse files
committed
Add spec for attr_writer/attr_accessor methods on a frozen object
1 parent 41af197 commit 6d22965

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

spec/ruby/core/module/attr_accessor_spec.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,20 @@ class TrueClass
3333
attr_accessor :spec_attr_accessor
3434
end
3535

36-
-> { true.spec_attr_accessor = "a" }.should raise_error(RuntimeError)
36+
-> { true.spec_attr_accessor = "a" }.should raise_error(FrozenError)
37+
end
38+
39+
it "raises FrozenError if the receiver if frozen" do
40+
c = Class.new do
41+
attr_accessor :foo
42+
end
43+
obj = c.new
44+
obj.foo = 1
45+
obj.foo.should == 1
46+
47+
obj.freeze
48+
-> { obj.foo = 42 }.should raise_error(FrozenError)
49+
obj.foo.should == 1
3750
end
3851

3952
it "converts non string/symbol names to strings using to_str" do

spec/ruby/core/module/attr_writer_spec.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,17 @@ class TrueClass
2929
attr_writer :spec_attr_writer
3030
end
3131

32-
-> { true.spec_attr_writer = "a" }.should raise_error(RuntimeError)
32+
-> { true.spec_attr_writer = "a" }.should raise_error(FrozenError)
33+
end
34+
35+
it "raises FrozenError if the receiver if frozen" do
36+
c = Class.new do
37+
attr_writer :foo
38+
end
39+
obj = c.new
40+
obj.freeze
41+
42+
-> { obj.foo = 42 }.should raise_error(FrozenError)
3343
end
3444

3545
it "converts non string/symbol names to strings using to_str" do

0 commit comments

Comments
 (0)