versionub 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|