Class: Properb::Generators::SelectedGenerator
- Inherits:
-
Properb::Generator
- Object
- Properb::Generator
- Properb::Generators::SelectedGenerator
- Defined in:
- lib/properb/generators/selected_generator.rb
Instance Method Summary collapse
- #generate_value(random, size) ⇒ Object
-
#initialize(generator, num_attempts: 10, &block) ⇒ SelectedGenerator
constructor
A new instance of SelectedGenerator.
Methods inherited from Properb::Generator
#map, #or, #reject, #select, #sized, #to_properb_generator
Constructor Details
#initialize(generator, num_attempts: 10, &block) ⇒ SelectedGenerator
Returns a new instance of SelectedGenerator.
4 5 6 7 8 |
# File 'lib/properb/generators/selected_generator.rb', line 4 def initialize(generator, num_attempts: 10, &block) @generator = generator @num_attempts = num_attempts @block = block end |
Instance Method Details
#generate_value(random, size) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/properb/generators/selected_generator.rb', line 10 def generate_value(random, size) @num_attempts.times do generated = @generator.generate_value(random, size) return generated.select(&@block).first if @block.call(generated.value) end raise "Could not generate a value after #{@num_attempts} attempts" end |