def initialize(name_, opts_={}, &block_)
@name = name_.to_sym
@type = opts_[:type] || :integer
if @type == :symbol
@symbol_info = ::Hash.new
@symbol_order = ::Array.new
else
@symbol_info = nil
@symbol_order = nil
end
@default_value = opts_[:default_value]
@bump_proc = nil
@compare_proc = nil
@canonicalize_proc = nil
master_builder_ = opts_[:master_builder]
if master_builder_
@bump_proc = master_builder_._get_default_setting(@type, :bump)
@compare_proc = master_builder_._get_default_setting(@type, :compare)
@canonicalize_proc = master_builder_._get_default_setting(@type, :canonicalize)
@default_value ||= master_builder_._get_default_setting(@type, :value)
end
@ranges = nil
@default_child = nil
@children = []
::Blockenspiel.invoke(block_, Schema::FieldBuilder.new(self, master_builder_)) if block_
@default_value = canonicalize_value(@default_value)
end