mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			757 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			757 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 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]'
 | |
| 
 | |
| assert_equal %{ok}, %{
 | |
|   class A
 | |
|     attr :m
 | |
|   end
 | |
|   begin
 | |
|     A.new.m(3)
 | |
|   rescue ArgumentError => e
 | |
|     print "ok"
 | |
|   end
 | |
| }, '[ruby-core:15120]'
 | |
| 
 | |
| 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
 | |
| }
 | 
