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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/expression.rb +138 -6
  3. data/lib/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe2fb3f9d190a1fd4e7b3503a201e411507d711ec2361c3948832c54bf6dc560
4
- data.tar.gz: 2f957fc944f04f5718cab603b542d03b53b894fdacaebd47c5f8e9ee8989daed
3
+ metadata.gz: 6ee105d363cf474e3cea5ed06d5f388998fcd25f82cbf9dadf660871965dab47
4
+ data.tar.gz: d09b013d9eea9552b5407f4f34bdcb8efb7c35153ccd3f7b92c262595d82dce1
5
5
  SHA512:
6
- metadata.gz: e875cf32f9bd79819277717b0e19e4a3af5651f5578981c062bb118a07fbb20f7e32938de65472bb94072e053410504aba26eb5682212abe54ef53486caf373b
7
- data.tar.gz: 6fd04d2eb2c7ac8ff183797d3a472c92ba1d6e018064a06e680fa3f51855c561c382d92fd8f89932b2bb02923fffdb5a76eb85cf7babe19cfdd0484e667c5421
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 gt_or_et_expression(expression)
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 gt_or_et_value(value)
247
+ def multiply_value(value)
116
248
  nil
117
249
  end
118
250
 
119
- def gt_or_et_type(type)
251
+ def multiply_type(type)
120
252
  nil
121
253
  end
122
254
 
123
- def lt_or_et_expression(expression)
255
+ def divide_expression(expression)
124
256
  nil
125
257
  end
126
258
 
127
- def lt_or_et_value(value)
259
+ def divide_value(value)
128
260
  nil
129
261
  end
130
262
 
131
- def lt_or_et_type(type)
263
+ def divide_type(type)
132
264
  nil
133
265
  end
134
266
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Expressions
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  end
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.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi