versionub 0.0.4 → 0.0.5
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/lib/versionub/types/standard.rb +50 -82
- metadata +2 -2
@@ -42,6 +42,9 @@ Versionub.register :standard do
|
|
42
42
|
((str('beta') | str('b')) >>
|
43
43
|
(part.as(:beta) | any.as(:beta))) |
|
44
44
|
|
45
|
+
((str('pre')) >>
|
46
|
+
(part.as(:pre) | any.as(:pre))) |
|
47
|
+
|
45
48
|
((str('rc')) >>
|
46
49
|
(part.as(:rc) | any.as(:rc))) |
|
47
50
|
|
@@ -59,33 +62,34 @@ Versionub.register :standard do
|
|
59
62
|
|
60
63
|
transform do
|
61
64
|
rule(version: subtree(:version)) {
|
65
|
+
version.delete(:bugfix) if version[:bugfix].is_a?(Array)
|
66
|
+
|
62
67
|
version.dup.each {|name, value|
|
63
68
|
version[name] = case value
|
64
|
-
when Array then
|
69
|
+
when Array then 0
|
65
70
|
when Parslet::Slice then value.to_s
|
66
71
|
else value
|
67
72
|
end
|
68
73
|
|
69
|
-
|
70
|
-
version.delete(name)
|
71
|
-
end
|
74
|
+
version.delete(name) unless version[name]
|
72
75
|
}
|
73
76
|
|
74
77
|
version
|
75
78
|
}
|
76
79
|
end
|
77
80
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
+
[:major, :minor, :tiny, [:patch, :p, :patchlevel]].each {|part|
|
82
|
+
part = [part].flatten
|
83
|
+
name = part.shift
|
81
84
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
+
define_method name do
|
86
|
+
@data[name].to_i
|
87
|
+
end
|
85
88
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
+
part.each {|synonym|
|
90
|
+
alias_method synonym, name
|
91
|
+
}
|
92
|
+
}
|
89
93
|
|
90
94
|
def bugfix
|
91
95
|
if @data[:bugfix] && @data[:bugfix].match(/[^0-9]/)
|
@@ -95,38 +99,30 @@ Versionub.register :standard do
|
|
95
99
|
end
|
96
100
|
end; alias tiny2 bugfix
|
97
101
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
def release_candidate
|
103
|
-
@data[:release_candidate].to_i if @data[:release_candidate]
|
104
|
-
end; alias rc release_candidate
|
105
|
-
|
106
|
-
def development
|
107
|
-
@data[:development].to_i if @data[:development]
|
108
|
-
end; alias d development; alias dev development;
|
102
|
+
[:patch, [:release_candidate, :rc], :pre, [:beta, :b, :beta_version], [:alpha, :a, :alpha_version], [:development, :d, :dev]].each {|part|
|
103
|
+
part = [part].flatten
|
104
|
+
name = part.shift
|
109
105
|
|
110
|
-
|
111
|
-
|
112
|
-
|
106
|
+
define_method "#{name}?" do
|
107
|
+
!!@data[name]
|
108
|
+
end
|
113
109
|
|
114
|
-
|
115
|
-
|
116
|
-
|
110
|
+
define_method name do
|
111
|
+
@data[name].to_i if send "#{name}?"
|
112
|
+
end unless respond_to?(name)
|
117
113
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
def beta?; !!@data[:beta]; end
|
114
|
+
part.each {|synonym|
|
115
|
+
alias_method synonym, name
|
116
|
+
}
|
117
|
+
}
|
123
118
|
|
124
119
|
def release_type
|
125
120
|
return :alpha if alpha?
|
126
121
|
return :beta if beta?
|
127
|
-
return :patch if patch?
|
128
122
|
return :development if development?
|
123
|
+
return :pre if pre?
|
129
124
|
return :release_candidate if release_candidate?
|
125
|
+
return :patch if patch?
|
130
126
|
return :final
|
131
127
|
end
|
132
128
|
|
@@ -135,21 +131,11 @@ Versionub.register :standard do
|
|
135
131
|
def <=> (value)
|
136
132
|
value = Versionub.parse(value, type)
|
137
133
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
return tmp
|
144
|
-
end
|
145
|
-
|
146
|
-
if (tmp = tiny <=> value.tiny) != 0
|
147
|
-
return tmp
|
148
|
-
end
|
149
|
-
|
150
|
-
if (tmp = bugfix <=> value.bugfix) != 0
|
151
|
-
return tmp
|
152
|
-
end
|
134
|
+
[:major, :minor, :tiny, :bugfix].each {|name|
|
135
|
+
if (tmp = send(name) <=> value.send(name)) != 0
|
136
|
+
return tmp
|
137
|
+
end
|
138
|
+
}
|
153
139
|
|
154
140
|
if patch?
|
155
141
|
if value.patch?
|
@@ -161,39 +147,21 @@ Versionub.register :standard do
|
|
161
147
|
return -1
|
162
148
|
end
|
163
149
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
if beta?
|
177
|
-
if value.beta?
|
178
|
-
return beta <=> value.beta
|
179
|
-
elsif value.alpha?
|
180
|
-
return 1
|
181
|
-
else
|
182
|
-
return -1
|
183
|
-
end
|
184
|
-
elsif value.beta?
|
185
|
-
return 1
|
186
|
-
end
|
187
|
-
|
188
|
-
if alpha?
|
189
|
-
if value.alpha?
|
190
|
-
return alpha <=> value.alpha
|
191
|
-
else
|
150
|
+
parts = [:release_candidate, :pre, :beta, :alpha, :development]
|
151
|
+
|
152
|
+
parts.each_with_index {|name, index|
|
153
|
+
if send("#{name}?")
|
154
|
+
if value.send("#{name}?")
|
155
|
+
return send(name) <=> value.send(name)
|
156
|
+
elsif parts[(index + 1) .. -1].any? { |n| value.send("#{n}?") }
|
157
|
+
return 1
|
158
|
+
else
|
159
|
+
return -1
|
160
|
+
end
|
161
|
+
elsif value.send("#{name}?")
|
192
162
|
return -1
|
193
163
|
end
|
194
|
-
|
195
|
-
return 1
|
196
|
-
end
|
164
|
+
}
|
197
165
|
|
198
166
|
0
|
199
167
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: versionub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- meh.
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-06-01 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: parslet
|