mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			992 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			992 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
#!/usr/bin/ruby
 | 
						|
# -*- mode: ruby -*-
 | 
						|
# $Id: objinst-ruby.code,v 1.4 2004/11/13 07:42:25 bfulgham Exp $
 | 
						|
# http://www.bagley.org/~doug/shootout/
 | 
						|
# with help from Aristarkh Zagorodnikov
 | 
						|
 | 
						|
class Toggle
 | 
						|
    def initialize(start_state)
 | 
						|
        @bool = start_state
 | 
						|
    end
 | 
						|
 | 
						|
    def value
 | 
						|
        @bool
 | 
						|
    end
 | 
						|
 | 
						|
    def activate
 | 
						|
        @bool = !@bool
 | 
						|
        self
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
class NthToggle < Toggle
 | 
						|
    def initialize(start_state, max_counter)
 | 
						|
        super start_state
 | 
						|
        @count_max = max_counter
 | 
						|
        @counter = 0
 | 
						|
    end
 | 
						|
 | 
						|
    def activate
 | 
						|
        @counter += 1
 | 
						|
        if @counter >= @count_max
 | 
						|
            @bool = !@bool
 | 
						|
            @counter = 0
 | 
						|
        end
 | 
						|
        self
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
n = 1500000 # (ARGV.shift || 1).to_i
 | 
						|
 | 
						|
toggle = Toggle.new 1
 | 
						|
5.times do
 | 
						|
    toggle.activate.value ? 'true' : 'false'
 | 
						|
end
 | 
						|
n.times do
 | 
						|
    toggle = Toggle.new 1
 | 
						|
end
 | 
						|
 | 
						|
ntoggle = NthToggle.new 1, 3
 | 
						|
8.times do
 | 
						|
    ntoggle.activate.value ? 'true' : 'false'
 | 
						|
end
 | 
						|
n.times do
 | 
						|
    ntoggle = NthToggle.new 1, 3
 | 
						|
end
 | 
						|
 |