versionomy 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +5 -0
- data/Rakefile +5 -4
- data/lib/versionomy/format.rb +2 -2
- data/lib/versionomy/formats/standard.rb +1 -1
- data/lib/versionomy/formats.rb +1 -1
- data/lib/versionomy/schema.rb +2 -2
- data/lib/versionomy/value.rb +15 -5
- data/lib/versionomy/version.rb +1 -1
- data/lib/versionomy.rb +2 -2
- data/tests/tc_standard_basic.rb +28 -0
- metadata +3 -3
data/History.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -33,6 +33,7 @@
|
|
33
33
|
# -----------------------------------------------------------------------------
|
34
34
|
|
35
35
|
|
36
|
+
require 'rubygems'
|
36
37
|
require 'rake'
|
37
38
|
require 'rake/clean'
|
38
39
|
require 'rake/gempackagetask'
|
@@ -88,7 +89,7 @@ gemspec_ = Gem::Specification.new do |s_|
|
|
88
89
|
s_.has_rdoc = true
|
89
90
|
s_.test_files = FileList['tests/tc_*.rb']
|
90
91
|
s_.platform = Gem::Platform::RUBY
|
91
|
-
s_.add_dependency('blockenspiel', '>= 0.2.
|
92
|
+
s_.add_dependency('blockenspiel', '>= 0.2.2')
|
92
93
|
end
|
93
94
|
Rake::GemPackageTask.new(gemspec_) do |task_|
|
94
95
|
task_.need_zip = false
|
@@ -106,7 +107,7 @@ end
|
|
106
107
|
|
107
108
|
|
108
109
|
# Publish gem
|
109
|
-
task :
|
110
|
+
task :release_gem_to_rubyforge => [:package] do |t_|
|
110
111
|
v_ = ENV["VERSION"]
|
111
112
|
abort "Must supply VERSION=x.y.z" unless v_
|
112
113
|
if v_ != Versionomy::VERSION_STRING
|
@@ -131,7 +132,7 @@ end
|
|
131
132
|
|
132
133
|
|
133
134
|
# Publish gem
|
134
|
-
task :
|
135
|
+
task :release_gem_to_gemcutter => [:package] do |t_|
|
135
136
|
v_ = ENV["VERSION"]
|
136
137
|
abort "Must supply VERSION=x.y.z" unless v_
|
137
138
|
if v_ != Versionomy::VERSION_STRING
|
@@ -143,4 +144,4 @@ end
|
|
143
144
|
|
144
145
|
|
145
146
|
# Publish everything
|
146
|
-
task :
|
147
|
+
task :release => [:release_gem_to_gemcutter, :release_gem_to_rubyforge, :publish_rdoc_to_rubyforge]
|
data/lib/versionomy/format.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -----------------------------------------------------------------------------
|
2
2
|
#
|
3
|
-
# Versionomy format
|
3
|
+
# Versionomy format namespace
|
4
4
|
#
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
# Copyright 2008-2009 Daniel Azuma
|
@@ -49,7 +49,7 @@ module Versionomy
|
|
49
49
|
#
|
50
50
|
# Under many circumstances, you should use the standard format, which
|
51
51
|
# can be retrieved by calling Versionomy::Formats#standard. This format
|
52
|
-
# understands most
|
52
|
+
# understands most common version numbers, including prerelease
|
53
53
|
# (e.g. alpha, beta, release candidate, etc.) forms and patchlevels.
|
54
54
|
#
|
55
55
|
# You may also create your own formats, either by implementing the
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -----------------------------------------------------------------------------
|
2
2
|
#
|
3
|
-
# Versionomy format
|
3
|
+
# Versionomy standard format implementation
|
4
4
|
#
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
# Copyright 2008-2009 Daniel Azuma
|
data/lib/versionomy/formats.rb
CHANGED
data/lib/versionomy/schema.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -----------------------------------------------------------------------------
|
2
2
|
#
|
3
|
-
# Versionomy schema
|
3
|
+
# Versionomy schema namespace
|
4
4
|
#
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
# Copyright 2008-2009 Daniel Azuma
|
@@ -83,7 +83,7 @@ module Versionomy
|
|
83
83
|
# The Versionomy::Schema::Wrapper class represents a full schema object.
|
84
84
|
#
|
85
85
|
# Generally, you should create schemas using Versionomy::Schema#create.
|
86
|
-
#
|
86
|
+
# That method provides a DSL that lets you quickly create the fields.
|
87
87
|
|
88
88
|
module Schema
|
89
89
|
end
|
data/lib/versionomy/value.rb
CHANGED
@@ -165,12 +165,14 @@ module Versionomy
|
|
165
165
|
|
166
166
|
|
167
167
|
# Returns true if this value contains the given field, which may be specified
|
168
|
-
# as a field object or
|
168
|
+
# as a field object, name, or index.
|
169
169
|
|
170
170
|
def has_field?(field_)
|
171
171
|
case field_
|
172
172
|
when Schema::Field
|
173
173
|
@field_path.include?(field_)
|
174
|
+
when ::Integer
|
175
|
+
@field_path.size > field_ && field_ >= 0
|
174
176
|
when ::String, ::Symbol
|
175
177
|
@values.has_key?(field_.to_sym)
|
176
178
|
else
|
@@ -179,12 +181,14 @@ module Versionomy
|
|
179
181
|
end
|
180
182
|
|
181
183
|
|
182
|
-
# Returns the value of the given field, or nil if the field is not
|
183
|
-
# The field may be specified as a field object
|
184
|
+
# Returns the value of the given field, or nil if the field is not
|
185
|
+
# recognized. The field may be specified as a field object, field name,
|
186
|
+
# or field index.
|
184
187
|
|
185
188
|
def [](field_)
|
189
|
+
field_ = @field_path[field_] if field_.kind_of?(::Integer)
|
186
190
|
field_ = field_.name if field_.kind_of?(Schema::Field)
|
187
|
-
@values[field_.to_sym]
|
191
|
+
field_ ? @values[field_.to_sym] : nil
|
188
192
|
end
|
189
193
|
|
190
194
|
|
@@ -202,11 +206,17 @@ module Versionomy
|
|
202
206
|
end
|
203
207
|
|
204
208
|
|
205
|
-
# Returns a new version number created by bumping the given field.
|
209
|
+
# Returns a new version number created by bumping the given field. The
|
210
|
+
# field may be specified as a field object, field name, or field index.
|
211
|
+
# Returns self if value could not be changed.
|
212
|
+
# Returns nil if the field was not recognized.
|
206
213
|
|
207
214
|
def bump(name_)
|
215
|
+
name_ = @field_path[name_] if name_.kind_of?(::Integer)
|
208
216
|
name_ = name_.name if name_.kind_of?(Schema::Field)
|
217
|
+
return nil unless name_
|
209
218
|
name_ = name_.to_sym
|
219
|
+
return nil unless @values.include?(name_)
|
210
220
|
values_ = []
|
211
221
|
@field_path.each do |field_|
|
212
222
|
oldval_ = @values[field_.name]
|
data/lib/versionomy/version.rb
CHANGED
data/lib/versionomy.rb
CHANGED
@@ -36,13 +36,13 @@
|
|
36
36
|
|
37
37
|
begin
|
38
38
|
require 'blockenspiel'
|
39
|
-
rescue LoadError
|
39
|
+
rescue ::LoadError
|
40
40
|
require 'rubygems'
|
41
41
|
require 'blockenspiel'
|
42
42
|
end
|
43
43
|
|
44
44
|
|
45
|
-
dir_ = File.expand_path('versionomy', File.dirname(__FILE__))
|
45
|
+
dir_ = ::File.expand_path('versionomy', ::File.dirname(__FILE__))
|
46
46
|
|
47
47
|
includes_ = [
|
48
48
|
'errors',
|
data/tests/tc_standard_basic.rb
CHANGED
@@ -141,6 +141,34 @@ module Versionomy
|
|
141
141
|
end
|
142
142
|
|
143
143
|
|
144
|
+
# Test specifying fields by index.
|
145
|
+
|
146
|
+
def test_field_get_index
|
147
|
+
value_ = Versionomy.create(:major => 2, :tiny => 1, :release_type => :beta, :beta_version => 3)
|
148
|
+
assert_equal(2, value_[0])
|
149
|
+
assert_equal(0, value_[1])
|
150
|
+
assert_equal(1, value_[2])
|
151
|
+
assert_equal(0, value_[3])
|
152
|
+
assert_equal(:beta, value_[4])
|
153
|
+
assert_equal(3, value_[5])
|
154
|
+
assert_equal(0, value_[6])
|
155
|
+
end
|
156
|
+
|
157
|
+
|
158
|
+
# Test specifying fields by name.
|
159
|
+
|
160
|
+
def test_field_get_name
|
161
|
+
value_ = Versionomy.create(:major => 2, :tiny => 1, :release_type => :beta, :beta_version => 3)
|
162
|
+
assert_equal(2, value_[:major])
|
163
|
+
assert_equal(0, value_[:minor])
|
164
|
+
assert_equal(1, value_[:tiny])
|
165
|
+
assert_equal(0, value_[:tiny2])
|
166
|
+
assert_equal(:beta, value_[:release_type])
|
167
|
+
assert_equal(3, value_[:beta_version])
|
168
|
+
assert_equal(0, value_[:beta_minor])
|
169
|
+
end
|
170
|
+
|
171
|
+
|
144
172
|
end
|
145
173
|
|
146
174
|
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.1.
|
4
|
+
version: 0.1.2
|
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: 2009-10-
|
12
|
+
date: 2009-10-28 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.2.
|
23
|
+
version: 0.2.2
|
24
24
|
version:
|
25
25
|
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.
|
26
26
|
email: dazuma@gmail.com
|