132: def generate(values)
133: return unless @generators.length > 0
134:
135: @generators.each do |generator|
136:
137: next if values[generator.name]
138:
139: if generator.source
140: unless value = values[generator.source]
141: raise ArgumentError, "#{generator.source} must be defined to generate #{generator.name}"
142: end
143: result = generator.generate(value)
144: else
145: result = generator.generate
146: end
147:
148: result = [result] unless result.is_a?(Array)
149: result = result.collect { |r| r.to_s }
150:
151: values[generator.name] = result
152: end
153: end