Sha256: fcac2c76886c31a58d248949f2c4771ced6329ce4a4aba11426a7d6dbc3bc163

Contents?: true

Size: 901 Bytes

Versions: 1

Compression:

Stored size: 901 Bytes

Contents

# alpha at 2007.10.14

require 'puzzle_generator/puzzle'

require 'ludy/hash/reverse_merge'

# require 'rubygems' if RUBY_VERSION < '1.9.0'
# require 'facets/timer'
require 'ludy/timer' # simple and stupid timer....

module PuzzleGenerator

  def self.generate_chained_map option = {}; generate_klass ChainedMap, option; end
  def self.generate_klass klass, option = {}
    option.reverse_merge! :timeout => 5
    generate(option[:timeout]){ klass.new option }
  end

  LastTriedInfo = {}
  def self.generate timeout = 5, &generator
    timer = Ludy::Timer.new(timeout).start
    tried_times = 1
    begin
      result = generator.call
      until result.result_map.kind_of? Array
        tried_times += 1
        result = generator.call
      end
    ensure
      # timer.stop
      LastTriedInfo.merge! :tried_times => tried_times, :tried_duration => timer.total_time
    end
    result
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ludy-0.1.9 lib/puzzle_generator.rb