def initialize(schema_, default_opts_={}, &block_)
if schema_.kind_of?(Delimiter)
orig_ = schema_
@schema = orig_.schema
@default_parse_params = orig_.default_parse_params
@default_unparse_params = orig_.default_unparse_params
@field_handlers = orig_.instance_variable_get(:@field_handlers).dup
builder_ = Delimiter::Builder.new(@schema, @field_handlers,
@default_parse_params, @default_unparse_params)
::Blockenspiel.invoke(block_, builder_)
return
end
@schema = schema_
@field_handlers = {}
@default_parse_params = {}
@default_unparse_params = {}
builder_ = Delimiter::Builder.new(@schema, @field_handlers,
@default_parse_params, @default_unparse_params)
::Blockenspiel.invoke(block_, builder_)
_interpret_field_lists(@default_unparse_params)
@schema.names.each do |name_|
@field_handlers[name_] ||= Delimiter::FieldHandler.new(@schema.field_named(name_), default_opts_)
end
end