51: def initialize(type, options = {}, &block)
52: @type = symbolize(type)
53: raise ArgumentError, "Invalid record type #{@type}" unless [:record, :text].include?(@type)
54:
55: set_options(options)
56:
57: if self.type == :record
58:
59: self.absent ||= ""
60: self.separator ||= /\s+/
61: self.joiner ||= " "
62: self.optional ||= []
63: @rollup = true unless defined?(@rollup)
64: end
65:
66: if block_given?
67: @block_eval ||= :process
68:
69:
70: if @block_eval == :instance
71: instance_eval(&block)
72: else
73: meta_def(@block_eval, &block)
74: end
75: end
76: end