def self.create
schema_ = Schema.create do
to_compare_type(:string) do |a_, b_|
if a_.kind_of?(::Integer)
if b_.kind_of?(::Integer)
a_ <=> b_
else
1
end
else
if b_.kind_of?(::Integer)
-1
else
a_ <=> b_
end
end
end
to_canonicalize_type(:string) do |val_|
if val_.kind_of?(::Integer)
val_
else
val_ = val_.to_s
if val_ =~ /\A\d*\z/
val_.to_i
else
val_
end
end
end
field(:field0, :type => :integer, :default_value => 1) do
field(:field1, :type => :string) do
field(:field2, :type => :string) do
field(:field3, :type => :string) do
field(:field4, :type => :string) do
field(:field5, :type => :string) do
field(:field6, :type => :string) do
field(:field7, :type => :string)
end
end
end
end
end
end
end
alias_field(:major, :field0)
alias_field(:minor, :field1)
add_module(Format::Rubygems::ExtraMethods)
end
Format::Delimiter.new(schema_) do
field(:field0) do
recognize_number(:delimiter_regexp => '', :default_delimiter => '')
end
field(:field1) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
field(:field2) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
field(:field3) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
field(:field4) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
field(:field5) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
field(:field6) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
field(:field7) do
recognize_regexp('[0-9a-zA-Z]+', :default_value_optional => true)
end
default_unparse_params(:required_fields => [:field1])
end
end