mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
bc64df876e
These settings are now covered by .dir-locals.el. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
56 lines
986 B
Ruby
56 lines
986 B
Ruby
#!/usr/bin/ruby
|
|
# -*- 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
|
|
|