module Gen::Test
Constants
- LOWER_BOUND
- UPPER_BOUND
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/gen/test.rb, line 9 def self.included(base) base.include(Gen) end
Public Instance Methods
for_all(*generators, &block)
click to toggle source
# File lib/gen/test.rb, line 13 def for_all(*generators, &block) for_n([LOWER_BOUND, UPPER_BOUND], *generators, &block) end
for_any(*generators, &block)
click to toggle source
# File lib/gen/test.rb, line 17 def for_any(*generators, &block) for_n(1, *generators, &block) end
Also aliased as: for_one
for_each(*collections) { |*map { |g| generate}| ... }
click to toggle source
# File lib/gen/test.rb, line 33 def for_each(*collections) unless collections.empty? size = collections.first.size raise "All collections must be the same size" unless collections.all? { |c| c.size == size } zipped = collections.first.zip(*collections.drop(1)) if block_given? zipped.each do |generators| yield(*generators.map { |g| Gen.generate(g) }) end else raise 'A block is expected with a property definition' end end end
for_n(n, *generators) { |*map(&method(:generate))| ... }
click to toggle source
# File lib/gen/test.rb, line 22 def for_n(n, *generators) if block_given? n = Faker::Number.between(n.first, n.last) if n.respond_to?(:first) and n.respond_to?(:last) n.times do yield(*generators.map(&Gen.method(:generate))) end else raise 'A block is expected with a property definition' end end