246: def parse_line(line)
247: unless records?
248: raise Puppet::DevError, "No record types defined; cannot parse lines"
249: end
250:
251: @record_order.each do |record|
252:
253: method = "handle_%s_line" % record.type
254: if respond_to?(method)
255: if result = send(method, line, record)
256: if record.respond_to?(:post_parse)
257: record.send(:post_parse, result)
258: end
259: return result
260: end
261: else
262: raise Puppet::DevError,
263: "Somehow got invalid line type %s" % record.type
264: end
265: end
266:
267: return nil
268: end