expressions 0.1.0 → 0.3.0
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.
- checksums.yaml +4 -4
- data/lib/expression.rb +142 -6
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6ee105d363cf474e3cea5ed06d5f388998fcd25f82cbf9dadf660871965dab47
|
|
4
|
+
data.tar.gz: d09b013d9eea9552b5407f4f34bdcb8efb7c35153ccd3f7b92c262595d82dce1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 218dab1a235b9e4884fbf12c6d714748f8d1702a195b29cf669b48774b507484cb6f45bcde2811b4bf88a25bafcb40e98dff6bd04857e0bc8acca98ab7d6cfaf
|
|
7
|
+
data.tar.gz: a171f17a41bee800df1f828818aa4e8443c759156f179910720f26a748a0282a9fb09c93b8f3ac7055062b915f4239fc95bb29911e00a25d8f1ea567bb7c2e5d
|
data/lib/expression.rb
CHANGED
|
@@ -16,6 +16,26 @@ module Expressions
|
|
|
16
16
|
self
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
def &(expression)
|
|
20
|
+
if expression.is_a?(::Expressions::Expression)
|
|
21
|
+
intersect_expression(expression)
|
|
22
|
+
else
|
|
23
|
+
value?(expression) ? intersect_value(expression) : intersect_type(expression)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
self
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def +(expression)
|
|
30
|
+
if expression.is_a?(::Expressions::Expression)
|
|
31
|
+
add_expression(expression)
|
|
32
|
+
else
|
|
33
|
+
value?(expression) ? add_value(expression) : add_type(expression)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
self
|
|
37
|
+
end
|
|
38
|
+
|
|
19
39
|
def >(expression)
|
|
20
40
|
if expression.is_a?(::Expressions::Expression)
|
|
21
41
|
gt_expression(expression)
|
|
@@ -56,6 +76,50 @@ module Expressions
|
|
|
56
76
|
self
|
|
57
77
|
end
|
|
58
78
|
|
|
79
|
+
def <=>(expression)
|
|
80
|
+
if expression.is_a?(::Expressions::Expression)
|
|
81
|
+
compare_expression(expression)
|
|
82
|
+
else
|
|
83
|
+
value?(expression) ? compare_value(expression) : compare_type(expression)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
self
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def ^(expression)
|
|
90
|
+
if expression.is_a?(::Expressions::Expression)
|
|
91
|
+
xor_expression(expression)
|
|
92
|
+
else
|
|
93
|
+
value?(expression) ? xor_value(expression) : xor_type(expression)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
self
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def *(expression)
|
|
100
|
+
if expression.is_a?(::Expressions::Expression)
|
|
101
|
+
multiply_expression(expression)
|
|
102
|
+
else
|
|
103
|
+
value?(expression) ? multiply_value(expression) : multiply_type(expression)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
self
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def /(expression)
|
|
110
|
+
if expression.is_a?(::Expressions::Expression)
|
|
111
|
+
divide_expression(expression)
|
|
112
|
+
else
|
|
113
|
+
value?(expression) ? divide_value(expression) : divide_type(expression)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
self
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def types
|
|
120
|
+
[self.class]
|
|
121
|
+
end
|
|
122
|
+
|
|
59
123
|
class << self
|
|
60
124
|
def |(expression)
|
|
61
125
|
self.new | expression
|
|
@@ -80,6 +144,30 @@ module Expressions
|
|
|
80
144
|
nil
|
|
81
145
|
end
|
|
82
146
|
|
|
147
|
+
def intersect_expression(expression)
|
|
148
|
+
nil
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def intersect_value(value)
|
|
152
|
+
nil
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def intersect_type(type)
|
|
156
|
+
nil
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def add_expression(expression)
|
|
160
|
+
nil
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def add_value(value)
|
|
164
|
+
nil
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def add_type(type)
|
|
168
|
+
nil
|
|
169
|
+
end
|
|
170
|
+
|
|
83
171
|
def gt_expression(expression)
|
|
84
172
|
nil
|
|
85
173
|
end
|
|
@@ -104,27 +192,75 @@ module Expressions
|
|
|
104
192
|
nil
|
|
105
193
|
end
|
|
106
194
|
|
|
107
|
-
def
|
|
195
|
+
def gt_or_eq_expression(expression)
|
|
196
|
+
nil
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def gt_or_eq_value(value)
|
|
200
|
+
nil
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def gt_or_eq_type(type)
|
|
204
|
+
nil
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def lt_or_eq_expression(expression)
|
|
208
|
+
nil
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def lt_or_eq_value(value)
|
|
212
|
+
nil
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def lt_or_eq_type(type)
|
|
216
|
+
nil
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def compare_expression(expression)
|
|
220
|
+
nil
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def compare_value(value)
|
|
224
|
+
nil
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def compare_type(type)
|
|
228
|
+
nil
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def xor_expression(expression)
|
|
232
|
+
nil
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
def xor_value(value)
|
|
236
|
+
nil
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
def xor_type(type)
|
|
240
|
+
nil
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
def multiply_expression(expression)
|
|
108
244
|
nil
|
|
109
245
|
end
|
|
110
246
|
|
|
111
|
-
def
|
|
247
|
+
def multiply_value(value)
|
|
112
248
|
nil
|
|
113
249
|
end
|
|
114
250
|
|
|
115
|
-
def
|
|
251
|
+
def multiply_type(type)
|
|
116
252
|
nil
|
|
117
253
|
end
|
|
118
254
|
|
|
119
|
-
def
|
|
255
|
+
def divide_expression(expression)
|
|
120
256
|
nil
|
|
121
257
|
end
|
|
122
258
|
|
|
123
|
-
def
|
|
259
|
+
def divide_value(value)
|
|
124
260
|
nil
|
|
125
261
|
end
|
|
126
262
|
|
|
127
|
-
def
|
|
263
|
+
def divide_type(type)
|
|
128
264
|
nil
|
|
129
265
|
end
|
|
130
266
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: expressions
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- maedi
|
|
@@ -38,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '0'
|
|
40
40
|
requirements: []
|
|
41
|
-
rubygems_version:
|
|
41
|
+
rubygems_version: 4.0.6
|
|
42
42
|
specification_version: 4
|
|
43
43
|
summary: Expressions evaluate into useful objects
|
|
44
44
|
test_files: []
|