234: def parse_line(line)
235: raise Puppet::DevError, "No record types defined; cannot parse lines" unless records?
236:
237: @record_order.each do |record|
238:
239: method = "handle_#{record.type}_line"
240: if respond_to?(method)
241: if result = send(method, line, record)
242: record.send(:post_parse, result) if record.respond_to?(:post_parse)
243: return result
244: end
245: else
246: raise Puppet::DevError,
247: "Somehow got invalid line type #{record.type}"
248: end
249: end
250:
251: nil
252: end