versionub 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/versionub/type.rb +22 -26
- data/lib/versionub/types/standard.rb +58 -60
- metadata +1 -1
data/lib/versionub/type.rb
CHANGED
@@ -23,6 +23,24 @@ module Versionub
|
|
23
23
|
|
24
24
|
class Type
|
25
25
|
class Instance
|
26
|
+
def self.parser (&block)
|
27
|
+
if block
|
28
|
+
@parser = Class.new(Parslet::Parser)
|
29
|
+
@parser.class_eval(&block)
|
30
|
+
end
|
31
|
+
|
32
|
+
@parser
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.transformer (&block)
|
36
|
+
if block
|
37
|
+
@transformer = Class.new(Parslet::Transform)
|
38
|
+
@transformer.class_eval(&block)
|
39
|
+
end
|
40
|
+
|
41
|
+
@transformer
|
42
|
+
end
|
43
|
+
|
26
44
|
attr_reader :type
|
27
45
|
|
28
46
|
def initialize (type, text, data)
|
@@ -46,41 +64,19 @@ class Type
|
|
46
64
|
@name = name
|
47
65
|
@instance = Class.new(Instance)
|
48
66
|
|
49
|
-
instance_eval &block
|
67
|
+
@instance.instance_eval &block
|
50
68
|
end
|
51
69
|
|
52
70
|
def parse (text)
|
53
|
-
data = parser.new.parse(text)
|
71
|
+
data = @instance.parser.new.parse(text)
|
54
72
|
|
55
|
-
if transformer
|
56
|
-
data = transformer.apply(data)
|
73
|
+
if @instance.transformer
|
74
|
+
data = @instance.transformer.apply(data)
|
57
75
|
end
|
58
76
|
|
59
77
|
@instance.new(name, text, data)
|
60
78
|
end
|
61
79
|
|
62
|
-
def parser (&block)
|
63
|
-
if block
|
64
|
-
@parser = Class.new(Parslet::Parser)
|
65
|
-
@parser.class_eval(&block)
|
66
|
-
end
|
67
|
-
|
68
|
-
@parser
|
69
|
-
end
|
70
|
-
|
71
|
-
def transformer (&block)
|
72
|
-
if block
|
73
|
-
@transformer = Class.new(Parslet::Transform)
|
74
|
-
@transformer.class_eval(&block)
|
75
|
-
end
|
76
|
-
|
77
|
-
@transformer
|
78
|
-
end
|
79
|
-
|
80
|
-
def callbacks (&block)
|
81
|
-
@instance.class_eval &block
|
82
|
-
@instance.instance_methods
|
83
|
-
end
|
84
80
|
end
|
85
81
|
|
86
82
|
end
|
@@ -44,85 +44,83 @@ Versionub.register :standard do
|
|
44
44
|
root :version
|
45
45
|
end
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
def minor
|
53
|
-
@data[:minor].to_s if @data[:minor]
|
54
|
-
end
|
47
|
+
def major
|
48
|
+
@data[:major].to_s if @data[:major]
|
49
|
+
end
|
55
50
|
|
56
|
-
|
57
|
-
|
58
|
-
|
51
|
+
def minor
|
52
|
+
@data[:minor].to_s if @data[:minor]
|
53
|
+
end
|
59
54
|
|
60
|
-
|
61
|
-
|
62
|
-
|
55
|
+
def bugfix
|
56
|
+
@data[:bugfix].to_s if @data[:bugfix]
|
57
|
+
end
|
63
58
|
|
64
|
-
|
65
|
-
|
66
|
-
|
59
|
+
def release_candidate
|
60
|
+
@data[:rc].is_a?(Array) ? '0' : @data[:rc].to_s
|
61
|
+
end; alias rc release_candidate
|
67
62
|
|
68
|
-
|
69
|
-
|
70
|
-
|
63
|
+
def development
|
64
|
+
@data[:development].is_a?(Array) ? '0' : @data[:development].to_s
|
65
|
+
end; alias d development; alias dev development;
|
71
66
|
|
72
|
-
|
73
|
-
|
74
|
-
|
67
|
+
def alpha
|
68
|
+
@data[:alpha].is_a?(Array) ? '0' : @data[:alpha].to_s
|
69
|
+
end; alias a alpha; alias alfa alpha
|
75
70
|
|
76
|
-
|
77
|
-
|
78
|
-
|
71
|
+
def beta
|
72
|
+
@data[:beta].is_a?(Array) ? '0' : @data[:beta].to_s
|
73
|
+
end; alias b beta
|
79
74
|
|
80
|
-
|
81
|
-
|
82
|
-
|
75
|
+
def release_candidate?
|
76
|
+
!!@data[:rc]
|
77
|
+
end
|
83
78
|
|
84
|
-
|
85
|
-
|
86
|
-
|
79
|
+
def development?
|
80
|
+
!!@data[:development]
|
81
|
+
end
|
87
82
|
|
88
|
-
|
89
|
-
|
90
|
-
|
83
|
+
def alpha?
|
84
|
+
!!@data[:alpha]
|
85
|
+
end
|
91
86
|
|
92
|
-
|
87
|
+
def beta?
|
88
|
+
!!@data[:beta]
|
89
|
+
end
|
93
90
|
|
94
|
-
|
95
|
-
value = Versionub.parse(value)
|
91
|
+
include Comparable
|
96
92
|
|
97
|
-
|
98
|
-
|
99
|
-
end
|
93
|
+
def <=> (value)
|
94
|
+
value = Versionub.parse(value)
|
100
95
|
|
101
|
-
|
102
|
-
|
103
|
-
|
96
|
+
if release_candidate? && value.release_candidate? && (tmp = (rc <=> value.rc))
|
97
|
+
return tmp
|
98
|
+
end
|
104
99
|
|
105
|
-
|
106
|
-
|
107
|
-
|
100
|
+
if development? && value.development? && (tmp = (development <=> value.development))
|
101
|
+
return tmp
|
102
|
+
end
|
108
103
|
|
109
|
-
|
110
|
-
|
111
|
-
|
104
|
+
if alpha? && value.alpha? && (tmp = (alpha <=> value.alpha))
|
105
|
+
return tmp
|
106
|
+
end
|
112
107
|
|
113
|
-
|
114
|
-
|
115
|
-
|
108
|
+
if beta? && value.beta? && (tmp = (beta <=> value.beta))
|
109
|
+
return tmp
|
110
|
+
end
|
116
111
|
|
117
|
-
|
118
|
-
|
119
|
-
|
112
|
+
if (tmp = (bugfix <=> value.bugfix)) != 0
|
113
|
+
return tmp
|
114
|
+
end
|
120
115
|
|
121
|
-
|
122
|
-
|
123
|
-
|
116
|
+
if (tmp = (minor <=> value.minor)) != 0
|
117
|
+
return tmp
|
118
|
+
end
|
124
119
|
|
125
|
-
|
120
|
+
if (tmp = (major <=> value.major)) != 0
|
121
|
+
return tmp
|
126
122
|
end
|
123
|
+
|
124
|
+
0
|
127
125
|
end
|
128
126
|
end
|