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