2008-01-17 11:59:23 -05:00
|
|
|
assert_equal 'ok', %q{
|
|
|
|
module M
|
|
|
|
class A
|
|
|
|
class << self
|
|
|
|
attr_accessor :at
|
|
|
|
def workflow_rule
|
|
|
|
yield self
|
|
|
|
end
|
|
|
|
|
|
|
|
def eval_str(str)
|
|
|
|
eval(str)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
begin
|
|
|
|
M::A.eval_str(<<-END)
|
|
|
|
workflow_rule do |r|
|
|
|
|
r.at 1
|
|
|
|
end
|
|
|
|
END
|
|
|
|
rescue ArgumentError => e
|
|
|
|
print "ok"
|
|
|
|
end
|
|
|
|
}, '[ruby-core:14641]'
|
|
|
|
|
2008-01-17 11:53:48 -05:00
|
|
|
assert_equal %{ok}, %{
|
|
|
|
class A
|
|
|
|
attr :m
|
|
|
|
end
|
|
|
|
begin
|
|
|
|
A.new.m(3)
|
|
|
|
rescue ArgumentError => e
|
|
|
|
print "ok"
|
|
|
|
end
|
|
|
|
}, '[ruby-core:15120]'
|
2022-10-03 11:14:32 -04:00
|
|
|
|
|
|
|
assert_equal %{ok}, %{
|
|
|
|
class Big
|
|
|
|
attr_reader :foo
|
|
|
|
def initialize
|
|
|
|
@foo = "ok"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
obj = Big.new
|
|
|
|
100.times do |i|
|
|
|
|
obj.instance_variable_set(:"@ivar_\#{i}", i)
|
|
|
|
end
|
|
|
|
|
|
|
|
Big.new.foo
|
|
|
|
}
|