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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/expression.rb +142 -6
  3. data/lib/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8215052326e692dcb08710e4686ac6369559e851b0e48bcb4d93379a383d0e5
4
- data.tar.gz: 6690f34a2798474dd3feb6b3afadd105cdf7d24e96d88efa55765be9bdfdd5be
3
+ metadata.gz: 6ee105d363cf474e3cea5ed06d5f388998fcd25f82cbf9dadf660871965dab47
4
+ data.tar.gz: d09b013d9eea9552b5407f4f34bdcb8efb7c35153ccd3f7b92c262595d82dce1
5
5
  SHA512:
6
- metadata.gz: 66734024a19fabb62897ad41c9ed7e0cd74a6182b0682681bc204f403d23ae43514f05610f6137f4611961556aa7fa2a05f65a4dbe85eabcdd84cf49b6ccfe3c
7
- data.tar.gz: 0e2908a3ae561b89a8319a14c1e95a9a4098587a66c6106795ee5553f13cc8086048e367740e82087f34d3d09146b6f954e9b71803700d34d39dda68e001b935
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 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)
108
244
  nil
109
245
  end
110
246
 
111
- def gt_or_et_value(value)
247
+ def multiply_value(value)
112
248
  nil
113
249
  end
114
250
 
115
- def gt_or_et_type(type)
251
+ def multiply_type(type)
116
252
  nil
117
253
  end
118
254
 
119
- def lt_or_et_expression(expression)
255
+ def divide_expression(expression)
120
256
  nil
121
257
  end
122
258
 
123
- def lt_or_et_value(value)
259
+ def divide_value(value)
124
260
  nil
125
261
  end
126
262
 
127
- def lt_or_et_type(type)
263
+ def divide_type(type)
128
264
  nil
129
265
  end
130
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.1.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.1.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: 3.7.2
41
+ rubygems_version: 4.0.6
42
42
  specification_version: 4
43
43
  summary: Expressions evaluate into useful objects
44
44
  test_files: []