Sha256: fb0ecb2d4f1aa86bf602163da52abeea8176006a64d132f7d8c0d021eeaf39a4
Contents?: true
Size: 1.12 KB
Versions: 206
Compression:
Stored size: 1.12 KB
Contents
module Origen class Generator class PatternIterator attr_accessor :key def invoke(options, &block) if enabled?(options) @loop.call(options[key], &block) else yield end end def loop(&block) @loop = block end def setup(&block) if block @setup = block elsif @setup @setup # Setup is optional for an iterator, return something to keep the caller happy else ->(arg) { arg } end end def startup(&block) if block @startup = block elsif @startup @startup # Startup is optional for an iterator, return something to keep the caller happy else ->(_options, arg) { arg } end end def pattern_name(&block) if block @pattern_name = block elsif @pattern_name @pattern_name else fail "pattern_name must be defined for iterator: #{key}" end end def enabled?(options) options.keys.include?(key) end end end end
Version data entries
206 entries across 206 versions & 1 rubygems