expressions 0.2.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 +138 -6
- data/lib/version.rb +1 -1
- metadata +1 -1
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,46 @@ 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
|
+
|
|
59
119
|
def types
|
|
60
120
|
[self.class]
|
|
61
121
|
end
|
|
@@ -84,6 +144,30 @@ module Expressions
|
|
|
84
144
|
nil
|
|
85
145
|
end
|
|
86
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
|
+
|
|
87
171
|
def gt_expression(expression)
|
|
88
172
|
nil
|
|
89
173
|
end
|
|
@@ -108,27 +192,75 @@ module Expressions
|
|
|
108
192
|
nil
|
|
109
193
|
end
|
|
110
194
|
|
|
111
|
-
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)
|
|
112
244
|
nil
|
|
113
245
|
end
|
|
114
246
|
|
|
115
|
-
def
|
|
247
|
+
def multiply_value(value)
|
|
116
248
|
nil
|
|
117
249
|
end
|
|
118
250
|
|
|
119
|
-
def
|
|
251
|
+
def multiply_type(type)
|
|
120
252
|
nil
|
|
121
253
|
end
|
|
122
254
|
|
|
123
|
-
def
|
|
255
|
+
def divide_expression(expression)
|
|
124
256
|
nil
|
|
125
257
|
end
|
|
126
258
|
|
|
127
|
-
def
|
|
259
|
+
def divide_value(value)
|
|
128
260
|
nil
|
|
129
261
|
end
|
|
130
262
|
|
|
131
|
-
def
|
|
263
|
+
def divide_type(type)
|
|
132
264
|
nil
|
|
133
265
|
end
|
|
134
266
|
end
|
data/lib/version.rb
CHANGED