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