versionub 0.0.1 → 0.0.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/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
|