versionomy 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,12 @@
1
+ === 0.0.4 / 2008-10-24
2
+
3
+ * Fixed incompatibility with Blockenspiel 0.0.4
4
+ * Fixed a number of issues with remembering value parse settings
5
+ * Parser recognizes additional release type formats
6
+ * Values have a parse method to parse another string in the same form
7
+ * Implemented comparison between value and string
8
+ * Exceptions correctly raised on comparison between incompatible types
9
+
1
10
  === 0.0.3 / 2008-10-21
2
11
 
3
12
  * Fixed string representations (inspect method)
@@ -5,7 +14,7 @@
5
14
 
6
15
  === 0.0.2 / 2008-10-20
7
16
 
8
- * Test release: Fixed manifest
17
+ * Fixed manifest
9
18
 
10
19
  === 0.0.1 / 2008-10-20
11
20
 
data/README.txt CHANGED
@@ -55,7 +55,6 @@ numbers in the wide variety of versioning schemes in use.
55
55
  v10.minor # => 0
56
56
  v10.patchlevel # => 2
57
57
  v10.to_s # => '2008 SP2'
58
- v10.unparse(:patchlevel_separator => 'p', :required_fields => 2) # => '2008.0p2'
59
58
 
60
59
  === Feature list
61
60
 
data/Rakefile CHANGED
@@ -43,7 +43,7 @@ Hoe.new('versionomy', Versionomy::VERSION_STRING) do |p_|
43
43
  p_.author = ['Daniel Azuma']
44
44
  p_.email = ['dazuma@gmail.com']
45
45
  p_.test_globs = ['tests/tc_*.rb']
46
- p_.extra_deps = [['blockenspiel', '>= 0.0.1']]
46
+ p_.extra_deps = [['blockenspiel', '>= 0.0.4']]
47
47
  p_.description_sections = ['versionomy']
48
48
  p_.url = 'http://virtuoso.rubyforge.org/versionomy'
49
49
  end
@@ -61,6 +61,13 @@ module Versionomy
61
61
  end
62
62
 
63
63
 
64
+ # This exception is raised if you try to perform a comparison
65
+ # between incompatible schemas.
66
+
67
+ class SchemaMismatchError < VersionomyError
68
+ end
69
+
70
+
64
71
  # This exception is raised during parsing if the specified format
65
72
  # name is not recognized.
66
73
 
@@ -42,7 +42,10 @@ module Versionomy
42
42
  module Format
43
43
 
44
44
 
45
- # A simple base formatter
45
+ # A simple base formatter.
46
+ #
47
+ # Formats need not extend this base class, as long as they duck-type the
48
+ # required methods name, parse, and unparse.
46
49
 
47
50
  class Base
48
51
 
@@ -50,7 +53,8 @@ module Versionomy
50
53
  # If a block is provided, you may call methods of Versionomy::Format::Builder
51
54
  # within the block, to specify ways to parse and unparse.
52
55
 
53
- def initialize(&block_)
56
+ def initialize(name_, &block_)
57
+ @name = name_.to_sym
54
58
  @parser = @unparser = nil
55
59
  Blockenspiel.invoke(block_, Versionomy::Format::Builder.new(self))
56
60
  end
@@ -64,6 +68,17 @@ module Versionomy
64
68
  @unparser = block_
65
69
  end
66
70
 
71
+ def _set_name(name_) # :nodoc:
72
+ @name = name_
73
+ end
74
+
75
+
76
+ # The format name
77
+
78
+ def name
79
+ @name
80
+ end
81
+
67
82
 
68
83
  # A simple parse algorithm.
69
84
  # If a parser block was provided during initialization, calls that block.
@@ -87,7 +102,7 @@ module Versionomy
87
102
  if @unparser
88
103
  @unparser.call(schema_, value_, params_)
89
104
  else
90
- value_.value_array.join('.')
105
+ value_.values.join('.')
91
106
  end
92
107
  end
93
108
 
@@ -124,6 +139,13 @@ module Versionomy
124
139
  @format._set_unparser(block_)
125
140
  end
126
141
 
142
+
143
+ # Specify the format name
144
+
145
+ def set_name(name_)
146
+ @format._set_name(name_)
147
+ end
148
+
127
149
  end
128
150
 
129
151
 
@@ -103,7 +103,7 @@ module Versionomy
103
103
  @default_subschema = nil
104
104
  @formats = Hash.new
105
105
  @default_format_name = nil
106
- Blockenspiel.invoke(block_, Versionomy::Schema::Builder.new(self))
106
+ Blockenspiel.invoke(block_, Versionomy::Schema::Builder.new(self)) if block_
107
107
  @initial_value = canonicalize_value(@initial_value)
108
108
  end
109
109
 
@@ -231,17 +231,18 @@ module Versionomy
231
231
  end
232
232
 
233
233
 
234
- # Define a formatter for this schema.
235
- # You may either pass a formatter or provide a block
236
- # that calls methods in Versionomy::Format::Builder.
237
-
238
- def define_format(name_, formatter_=nil, &block_)
239
- if block_
240
- @formats[name_] = Versionomy::Format::Base.new(&block_)
241
- else
242
- @formats[name_] = formatter_
243
- end
244
- @default_format_name ||= name_
234
+ # Define a format for this schema.
235
+ #
236
+ # You may either:
237
+ #
238
+ # * pass a format, or
239
+ # * pass a name and provide a block that calls methods in
240
+ # Versionomy::Format::Builder.
241
+
242
+ def define_format(format_=nil, &block_)
243
+ format_ = Versionomy::Format::Base.new(format_, &block_) if block_
244
+ @formats[format_.name] = format_
245
+ @default_format_name ||= format_.name
245
246
  end
246
247
 
247
248
 
@@ -522,12 +523,16 @@ module Versionomy
522
523
  end
523
524
 
524
525
 
525
- # Define a formatter for this schema.
526
- # You may either pass a formatter or provide a block
527
- # that calls methods in Versionomy::Format::Builder.
526
+ # Define a format for this schema.
527
+ #
528
+ # You may either:
529
+ #
530
+ # * pass a format, or
531
+ # * pass a name and provide a block that calls methods in
532
+ # Versionomy::Format::Builder.
528
533
 
529
- def define_format(name_, formatter_=nil, &block_)
530
- @schema.define_format(name_, formatter_, &block_)
534
+ def define_format(format_=nil, &block_)
535
+ @schema.define_format(format_, &block_)
531
536
  end
532
537
 
533
538
 
@@ -107,12 +107,19 @@ module Versionomy
107
107
  # Create a new formatter
108
108
 
109
109
  def initialize(opts_={})
110
- @patchlevel_separator = opts_[:patchlevel_separators] || ['-', 'p']
111
- @prerelease_symbol = opts_[:prerelease_symbols] || 'pre'
112
- @development_symbol = opts_[:development_symbols] || 'd'
113
- @alpha_symbol = opts_[:alpha_symbols] || 'a'
114
- @beta_symbol = opts_[:beta_symbols] || 'b'
115
- @release_candidate_symbol = opts_[:release_candidate_symbols] || 'rc'
110
+ @name = opts_[:name] || :standard
111
+ @patchlevel_separator = opts_[:patchlevel_separator] || ['-', '\s?[Pp]']
112
+ @prerelease_symbol = opts_[:prerelease_symbol] || '\s?(PRE|Pre|pre)'
113
+ @development_symbol = opts_[:development_symbol] || '\s?[Dd]'
114
+ @alpha_symbol = opts_[:alpha_symbol] || '\s?[Aa](LPHA|lpha)?'
115
+ @beta_symbol = opts_[:beta_symbol] || '\s?[Bb](ETA|eta)?'
116
+ @release_candidate_symbol = opts_[:release_candidate_symbol] || '\s?(RC|Rc|rc)'
117
+ @patchlevel_separator_unparse = opts_[:patchlevel_separator_unparse] || '-'
118
+ @prerelease_symbol_unparse = opts_[:prerelease_symbol_unparse] || 'pre'
119
+ @development_symbol_unparse = opts_[:development_symbol_unparse] || 'd'
120
+ @alpha_symbol_unparse = opts_[:alpha_symbol_unparse] || 'a'
121
+ @beta_symbol_unparse = opts_[:beta_symbol_unparse] || 'b'
122
+ @release_candidate_symbol_unparse = opts_[:release_candidate_symbol_unparse] || 'rc'
116
123
  end
117
124
 
118
125
 
@@ -133,24 +140,18 @@ module Versionomy
133
140
  end
134
141
  private :_create_regex
135
142
 
136
- def _create_separator(given_, default_) # :nodoc:
137
- if given_
138
- given_.to_s
139
- else
140
- if default_.respond_to?(:join)
141
- default_[0].to_s
142
- else
143
- default_.to_s
144
- end
145
- end
143
+
144
+ # The format name
145
+
146
+ def name
147
+ @name
146
148
  end
147
- private :_create_separator
148
149
 
149
150
 
150
151
  # Parse a string for the standard schema.
151
152
 
152
153
  def parse(schema_, str_, params_)
153
- params_ = Hash.new.merge(params_)
154
+ params_ = {:format => @name}.merge(params_)
154
155
  hash_ = Hash.new
155
156
  if str_ =~ /^(\d+)(.*)$/
156
157
  hash_[:major] = $1.to_i
@@ -181,10 +182,11 @@ module Versionomy
181
182
  params_[:required_fields] = 1
182
183
  end
183
184
  if str_ =~ /^(#{_create_regex(params_[:prerelease_symbol], @prerelease_symbol)})(\d+)(.*)$/
184
- params_[:prerelease_symbol] = $1
185
+ matches_ = $~
186
+ params_[:prerelease_symbol_unparse] = matches_[1]
185
187
  hash_[:release_type] = :prerelease
186
- hash_[:prerelease_version] = $2.to_i
187
- str_ = $3
188
+ hash_[:prerelease_version] = matches_[-2].to_i
189
+ str_ = matches_[-1]
188
190
  if str_ =~ /^\.(\d+)/
189
191
  hash_[:prerelease_minor] = $1.to_i
190
192
  params_[:prerelease_required_fields] = 2
@@ -192,10 +194,11 @@ module Versionomy
192
194
  params_[:prerelease_required_fields] = 1
193
195
  end
194
196
  elsif str_ =~ /^(#{_create_regex(params_[:development_symbol], @development_symbol)})(\d+)(.*)$/
195
- params_[:development_symbol] = $1
197
+ matches_ = $~
198
+ params_[:development_symbol_unparse] = matches_[1]
196
199
  hash_[:release_type] = :development
197
- hash_[:development_version] = $2.to_i
198
- str_ = $3
200
+ hash_[:development_version] = matches_[-2].to_i
201
+ str_ = matches_[-1]
199
202
  if str_ =~ /^\.(\d+)/
200
203
  hash_[:development_minor] = $1.to_i
201
204
  params_[:development_required_fields] = 2
@@ -203,10 +206,11 @@ module Versionomy
203
206
  params_[:development_required_fields] = 1
204
207
  end
205
208
  elsif str_ =~ /^(#{_create_regex(params_[:alpha_symbol], @alpha_symbol)})(\d+)(.*)$/
206
- params_[:alpha_symbol] = $1
209
+ matches_ = $~
210
+ params_[:alpha_symbol_unparse] = matches_[1]
207
211
  hash_[:release_type] = :alpha
208
- hash_[:alpha_version] = $2.to_i
209
- str_ = $3
212
+ hash_[:alpha_version] = matches_[-2].to_i
213
+ str_ = matches_[-1]
210
214
  if str_ =~ /^\.(\d+)/
211
215
  hash_[:alpha_minor] = $1.to_i
212
216
  params_[:alpha_required_fields] = 2
@@ -214,10 +218,11 @@ module Versionomy
214
218
  params_[:alpha_required_fields] = 1
215
219
  end
216
220
  elsif str_ =~ /^(#{_create_regex(params_[:beta_symbol], @beta_symbol)})(\d+)(.*)$/
217
- params_[:beta_symbol] = $1
221
+ matches_ = $~
222
+ params_[:beta_symbol_unparse] = matches_[1]
218
223
  hash_[:release_type] = :beta
219
- hash_[:beta_version] = $2.to_i
220
- str_ = $3
224
+ hash_[:beta_version] = matches_[-2].to_i
225
+ str_ = matches_[-1]
221
226
  if str_ =~ /^\.(\d+)/
222
227
  hash_[:beta_minor] = $1.to_i
223
228
  params_[:beta_required_fields] = 2
@@ -225,10 +230,11 @@ module Versionomy
225
230
  params_[:beta_required_fields] = 1
226
231
  end
227
232
  elsif str_ =~ /^(#{_create_regex(params_[:release_candidate_symbol], @release_candidate_symbol)})(\d+)(.*)$/
228
- params_[:release_candidate_symbol] = $1
229
- hash_[:release_candidate_version] = $2.to_i
233
+ matches_ = $~
234
+ params_[:release_candidate_symbol_unparse] = matches_[1]
235
+ hash_[:release_candidate_version] = matches_[-2].to_i
230
236
  hash_[:release_type] = :release_candidate
231
- str_ = $3
237
+ str_ = matches_[-1]
232
238
  if str_ =~ /^\.(\d+)/
233
239
  hash_[:release_candidate_minor] = $1.to_i
234
240
  params_[:release_candidate_required_fields] = 2
@@ -238,10 +244,11 @@ module Versionomy
238
244
  else
239
245
  hash_[:release_type] = :release
240
246
  if str_ =~ /^(#{_create_regex(params_[:patchlevel_separator], @patchlevel_separator)})(\d+)(.*)$/
241
- params_[:patchlevel_separator] = $1
247
+ matches_ = $~
248
+ params_[:patchlevel_separator_unparse] = matches_[1]
242
249
  params_[:patchlevel_format] = :digit
243
- hash_[:patchlevel] = $2.to_i
244
- str_ = $3
250
+ hash_[:patchlevel] = matches_[-2].to_i
251
+ str_ = matches_[-1]
245
252
  if str_ =~ /^\.(\d+)/
246
253
  hash_[:patchlevel_minor] = $1.to_i
247
254
  params_[:patchlevel_required_fields] = 2
@@ -273,35 +280,35 @@ module Versionomy
273
280
  case value_.release_type
274
281
  when :prerelease
275
282
  prerelease_required_fields_ = params_[:prerelease_required_fields] || 1
276
- str_ << _create_separator(params_[:prerelease_symbol], @prerelease_symbol)
283
+ str_ << (params_[:prerelease_symbol_unparse] || @prerelease_symbol_unparse)
277
284
  str_ << value_.prerelease_version.to_s
278
285
  if value_.prerelease_minor > 0 || prerelease_required_fields_ > 1
279
286
  str_ << ".#{value_.prerelease_minor}"
280
287
  end
281
288
  when :development
282
289
  development_required_fields_ = params_[:development_required_fields] || 1
283
- str_ << _create_separator(params_[:development_symbol], @development_symbol)
290
+ str_ << (params_[:development_symbol_unparse] || @development_symbol_unparse)
284
291
  str_ << value_.development_version.to_s
285
292
  if value_.development_minor > 0 || development_required_fields_ > 1
286
293
  str_ << ".#{value_.development_minor}"
287
294
  end
288
295
  when :alpha
289
296
  alpha_required_fields_ = params_[:alpha_required_fields] || 1
290
- str_ << _create_separator(params_[:alpha_symbol], @alpha_symbol)
297
+ str_ << (params_[:alpha_symbol_unparse] || @alpha_symbol_unparse)
291
298
  str_ << value_.alpha_version.to_s
292
299
  if value_.alpha_minor > 0 || alpha_required_fields_ > 1
293
300
  str_ << ".#{value_.alpha_minor}"
294
301
  end
295
302
  when :beta
296
303
  beta_required_fields_ = params_[:beta_required_fields] || 1
297
- str_ << _create_separator(params_[:beta_symbol], @beta_symbol)
304
+ str_ << (params_[:beta_symbol_unparse] || @beta_symbol_unparse)
298
305
  str_ << value_.beta_version.to_s
299
306
  if value_.beta_minor > 0 || beta_required_fields_ > 1
300
307
  str_ << ".#{value_.beta_minor}"
301
308
  end
302
309
  when :release_candidate
303
310
  release_candidate_required_fields_ = params_[:release_candidate_required_fields] || 1
304
- str_ << _create_separator(params_[:release_candidate_symbol], @release_candidate_symbol)
311
+ str_ << (params_[:release_candidate_symbol_unparse] || @release_candidate_symbol_unparse)
305
312
  str_ << value_.release_candidate_version.to_s
306
313
  if value_.release_candidate_minor > 0 || release_candidate_required_fields_ > 1
307
314
  str_ << ".#{value_.release_candidate_minor}"
@@ -314,7 +321,7 @@ module Versionomy
314
321
  elsif params_[:patchlevel_format] == :alpha_upper
315
322
  str_.concat(64 + value_.patchlevel)
316
323
  else
317
- str_ << _create_separator(params_[:patchlevel_separator], @patchlevel_separator)
324
+ str_ << (params_[:patchlevel_separator_unparse] || @patchlevel_separator_unparse)
318
325
  str_ << value_.patchlevel.to_s
319
326
  if value_.patchlevel_minor > 0 || patchlevel_required_fields_ > 1
320
327
  str_ << ".#{value_.patchlevel_minor}"
@@ -372,7 +379,7 @@ module Versionomy
372
379
  end
373
380
  end
374
381
  end
375
- define_format(:default, StandardFormat.new)
382
+ define_format(StandardFormat.new)
376
383
  end
377
384
  end
378
385
 
@@ -93,6 +93,20 @@ module Versionomy
93
93
  end
94
94
 
95
95
 
96
+ # Get the value of the most significant field
97
+
98
+ def _toplevel_value # :nodoc:
99
+ @value
100
+ end
101
+
102
+
103
+ # Get a value representing all fields except the most significant field
104
+
105
+ def _subvalue # :nodoc:
106
+ @subvalue
107
+ end
108
+
109
+
96
110
  # Returns a string representation generated by unparsing.
97
111
  # If unparsing fails, does not raise Versionomy::Errors::ParseError,
98
112
  # but instead returns the string generated by +inspect+.
@@ -119,6 +133,14 @@ module Versionomy
119
133
  end
120
134
 
121
135
 
136
+ # Parse another string using the same schema, and same parse parameters
137
+ # as this value, subject to the given modifications.
138
+
139
+ def parse(str_, params_={})
140
+ @schema.parse(str_, @parse_params.merge(params_))
141
+ end
142
+
143
+
122
144
  # Return the schema defining the form of this version number
123
145
 
124
146
  def schema
@@ -134,6 +156,7 @@ module Versionomy
134
156
 
135
157
 
136
158
  # Returns an array of recognized field names for this value, in field order.
159
+
137
160
  def fields
138
161
  @subvalue ? @subvalue.fields.unshift(@schema.name) : [@schema.name]
139
162
  end
@@ -169,8 +192,8 @@ module Versionomy
169
192
 
170
193
  # Returns the value as an array of field values, in field order.
171
194
 
172
- def value_array
173
- @subvalue ? @subvalue.value_array.unshift(@value) : [@value]
195
+ def values
196
+ @subvalue ? @subvalue.values.unshift(@value) : [@value]
174
197
  end
175
198
 
176
199
 
@@ -215,7 +238,7 @@ module Versionomy
215
238
 
216
239
 
217
240
  def hash # :nodoc:
218
- @schema.name.hash ^ @value.hash ^ @subvalue.hash
241
+ @hash ||= @schema.name.hash ^ @value.hash ^ @subvalue.hash
219
242
  end
220
243
 
221
244
 
@@ -224,11 +247,14 @@ module Versionomy
224
247
  # schemas may actually be different.
225
248
 
226
249
  def eql?(obj_)
250
+ if obj_.kind_of?(String)
251
+ obj_ = parse(obj_) rescue nil
252
+ end
227
253
  if obj_.kind_of?(Versionomy::Value)
228
- if @schema.name != obj_.schema.name || @value != obj_.toplevel_value
254
+ if @schema.name != obj_.schema.name || @value != obj_._toplevel_value
229
255
  false
230
256
  elsif @subvalue
231
- @subvalue.eql?(obj_.subvalue)
257
+ @subvalue.eql?(obj_._subvalue)
232
258
  else
233
259
  true
234
260
  end
@@ -252,23 +278,26 @@ module Versionomy
252
278
  # even if the schemas are different.
253
279
 
254
280
  def <=>(obj_)
255
- if obj_.kind_of?(Versionomy::Value)
256
- if @schema.name != obj_.schema.name
257
- nil
281
+ if obj_.kind_of?(String)
282
+ obj_ = parse(obj_)
283
+ end
284
+ if !obj_.kind_of?(Versionomy::Value)
285
+ raise ArgumentError, "comparison of Versionomy::Value with #{obj_.class} failed"
286
+ end
287
+ if @schema.name != obj_.schema.name
288
+ raise SchemaMismatchError
289
+ end
290
+ val_ = @schema.compare_values(@value, obj_._toplevel_value)
291
+ if val_ == 0
292
+ if @subvalue.nil? && obj_._subvalue.nil?
293
+ 0
294
+ elsif !@subvalue.nil? && !obj_._subvalue.nil?
295
+ @subvalue <=> obj_._subvalue
258
296
  else
259
- val_ = @schema.compare_values(@value, obj_.toplevel_value)
260
- if val_ == 0
261
- if @subvalue.nil?
262
- obj_.subvalue.nil? ? 0 : nil
263
- else
264
- @subvalue <=> obj_.subvalue
265
- end
266
- else
267
- val_
268
- end
297
+ raise SchemaMismatchError
269
298
  end
270
299
  else
271
- nil
300
+ val_
272
301
  end
273
302
  end
274
303
 
@@ -291,20 +320,6 @@ module Versionomy
291
320
  end
292
321
 
293
322
 
294
- # Get the value of the most significant field
295
-
296
- def toplevel_value
297
- @value
298
- end
299
-
300
-
301
- # Get a value representing all fields except the most significant field
302
-
303
- def subvalue
304
- @subvalue
305
- end
306
-
307
-
308
323
  # Field values may be retrieved by calling them as methods.
309
324
 
310
325
  def method_missing(symbol_)
@@ -36,7 +36,7 @@
36
36
 
37
37
  module Versionomy
38
38
 
39
- VERSION_STRING = '0.0.3'
39
+ VERSION_STRING = '0.0.4'
40
40
  VERSION = parse(VERSION_STRING)
41
41
 
42
42
  end
@@ -101,6 +101,27 @@ module Versionomy
101
101
  end
102
102
 
103
103
 
104
+ # Test equality with string.
105
+
106
+ def test_equality_string
107
+ value1_ = Versionomy.parse("1.8.7p72")
108
+ assert_operator(value1_, :==, "1.8.7p72")
109
+ assert_operator(value1_, :==, "1.8.7.0-72.0")
110
+ end
111
+
112
+
113
+ # Test comparison with string.
114
+
115
+ def test_comparison_string
116
+ value1_ = Versionomy.parse("1.8.7p72")
117
+ assert_operator(value1_, :<, "1.8.7p73")
118
+ assert_operator(value1_, :<, "1.8.8pre1")
119
+ assert_operator(value1_, :>, "1.8.7p71")
120
+ assert_operator(value1_, :>, "1.8.7rc2")
121
+ assert_operator(value1_, :>, "1.8.7.0")
122
+ end
123
+
124
+
104
125
  end
105
126
 
106
127
  end
@@ -139,6 +139,17 @@ module Versionomy
139
139
  end
140
140
 
141
141
 
142
+ # Test parsing beta alternates
143
+
144
+ def test_parsing_beta_alternates
145
+ assert_equal(Versionomy.parse('2.52.1 beta4'), '2.52.1b4')
146
+ assert_equal(Versionomy.parse('2.52.1B4'), '2.52.1b4')
147
+ assert_equal(Versionomy.parse('2.52.1BETA4'), '2.52.1b4')
148
+ assert_equal(Versionomy.parse('2.52.1 Beta4'), '2.52.1b4')
149
+ assert_not_equal(Versionomy.parse('2.52.1 eta4'), '2.52.1b4')
150
+ end
151
+
152
+
142
153
  # Test parsing release candidate.
143
154
 
144
155
  def test_parsing_release_candidate
@@ -156,6 +167,16 @@ module Versionomy
156
167
  end
157
168
 
158
169
 
170
+ # Test parsing with custom symbols
171
+
172
+ def test_parsing_custom_patchlevel_symbols
173
+ value1_ = Versionomy.parse('2008 SP2', :patchlevel_separator => '\s?(SP|sp)')
174
+ assert_equal(2, value1_.patchlevel)
175
+ value2_ = value1_.parse('2008 sp3')
176
+ assert_equal(3, value2_.patchlevel)
177
+ end
178
+
179
+
159
180
  end
160
181
 
161
182
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: versionomy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-21 00:00:00 -07:00
12
+ date: 2008-10-24 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.0.1
23
+ version: 0.0.4
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hoe
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.8.0
33
+ version: 1.8.1
34
34
  version:
35
35
  description: Versionomy is a generalized version number library. It provides tools to represent, manipulate, parse, and compare version numbers in the wide variety of versioning schemes in use.
36
36
  email: