expressions 0.0.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d6d40e8b41013aa819f43ee49a8997ba6ab3b231aa26dc5e6de4b7be34151442
4
- data.tar.gz: 43efc7bb460f103032c638c2913c523ecd8b33b3b532dfb96a864eaa3e7db2ea
3
+ metadata.gz: c8215052326e692dcb08710e4686ac6369559e851b0e48bcb4d93379a383d0e5
4
+ data.tar.gz: 6690f34a2798474dd3feb6b3afadd105cdf7d24e96d88efa55765be9bdfdd5be
5
5
  SHA512:
6
- metadata.gz: 97e5594dee261bec79b74fe168a9d719a27788f3e3ef63bd59da9557f9b583a00387cb1f8737f201136467c0c0a9dcd28da2e2c57a64fed239d4dfaaaa4c0e4d
7
- data.tar.gz: 501f239468eea5f335b87bd311a94c69398cbd075acbe3eccb4bc8b8d5330e7cf9b6ee61e45b2bc38ad543b3f8a62cee4e4fc1ae3b7c1379a14b509873af60d6
6
+ metadata.gz: 66734024a19fabb62897ad41c9ed7e0cd74a6182b0682681bc204f403d23ae43514f05610f6137f4611961556aa7fa2a05f65a4dbe85eabcdd84cf49b6ccfe3c
7
+ data.tar.gz: 0e2908a3ae561b89a8319a14c1e95a9a4098587a66c6106795ee5553f13cc8086048e367740e82087f34d3d09146b6f954e9b71803700d34d39dda68e001b935
data/lib/expression.rb CHANGED
@@ -8,10 +8,124 @@ module Expressions
8
8
 
9
9
  def |(expression)
10
10
  if expression.is_a?(::Expressions::Expression)
11
- @expressions << expression
11
+ union_expression(expression)
12
+ else
13
+ value?(expression) ? union_value(expression) : union_type(expression)
12
14
  end
13
15
 
14
16
  self
15
17
  end
18
+
19
+ def >(expression)
20
+ if expression.is_a?(::Expressions::Expression)
21
+ gt_expression(expression)
22
+ else
23
+ value?(expression) ? gt_value(expression) : gt_type(expression)
24
+ end
25
+
26
+ self
27
+ end
28
+
29
+ def <(expression)
30
+ if expression.is_a?(::Expressions::Expression)
31
+ lt_expression(expression)
32
+ else
33
+ value?(expression) ? lt_value(expression) : lt_type(expression)
34
+ end
35
+
36
+ self
37
+ end
38
+
39
+ def >=(expression)
40
+ if expression.is_a?(::Expressions::Expression)
41
+ gt_or_eq_expression(expression)
42
+ else
43
+ value?(expression) ? gt_or_eq_value(expression) : gt_or_eq_type(expression)
44
+ end
45
+
46
+ self
47
+ end
48
+
49
+ def <=(expression)
50
+ if expression.is_a?(::Expressions::Expression)
51
+ lt_or_eq_expression(expression)
52
+ else
53
+ value?(expression) ? lt_or_eq_value(expression) : lt_or_eq_type(expression)
54
+ end
55
+
56
+ self
57
+ end
58
+
59
+ class << self
60
+ def |(expression)
61
+ self.new | expression
62
+ end
63
+ end
64
+
65
+ private
66
+
67
+ def value?(expression)
68
+ !expression.instance_of?(Class)
69
+ end
70
+
71
+ def union_expression(expression)
72
+ nil
73
+ end
74
+
75
+ def union_value(value)
76
+ nil
77
+ end
78
+
79
+ def union_type(type)
80
+ nil
81
+ end
82
+
83
+ def gt_expression(expression)
84
+ nil
85
+ end
86
+
87
+ def gt_value(value)
88
+ nil
89
+ end
90
+
91
+ def gt_type(type)
92
+ nil
93
+ end
94
+
95
+ def lt_expression(expression)
96
+ nil
97
+ end
98
+
99
+ def lt_value(value)
100
+ nil
101
+ end
102
+
103
+ def lt_type(type)
104
+ nil
105
+ end
106
+
107
+ def gt_or_et_expression(expression)
108
+ nil
109
+ end
110
+
111
+ def gt_or_et_value(value)
112
+ nil
113
+ end
114
+
115
+ def gt_or_et_type(type)
116
+ nil
117
+ end
118
+
119
+ def lt_or_et_expression(expression)
120
+ nil
121
+ end
122
+
123
+ def lt_or_et_value(value)
124
+ nil
125
+ end
126
+
127
+ def lt_or_et_type(type)
128
+ nil
129
+ end
16
130
  end
17
131
  end
data/lib/expressions.rb CHANGED
@@ -1,17 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'low_type'
4
- require_relative 'api'
3
+ require_relative 'expression'
5
4
 
6
5
  module Expressions
7
- def self.included(klass)
8
- klass.include API
9
- klass.include LowType if Expressions.config.type_expression
10
- end
11
-
12
6
  class << self
13
7
  def config
14
- config = Struct.new(:type_expression)
8
+ config = Struct.new(:something)
15
9
  @config ||= config.new(true)
16
10
  end
17
11
 
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Expressions
4
- VERSION = '0.0.0'
4
+ VERSION = '0.1.0'
5
5
  end
metadata CHANGED
@@ -1,40 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
8
8
  bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: low_type
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - "~>"
17
- - !ruby/object:Gem::Version
18
- version: '1.0'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - "~>"
24
- - !ruby/object:Gem::Version
25
- version: '1.0'
11
+ dependencies: []
12
+ description: Expressions evaluate into useful objects via a query builder like interface
26
13
  email:
27
14
  - maediprichard@gmail.com
28
15
  executables: []
29
16
  extensions: []
30
17
  extra_rdoc_files: []
31
18
  files:
32
- - lib/api.rb
33
19
  - lib/expression.rb
34
20
  - lib/expressions.rb
35
- - lib/expressions/config_expression.rb
36
- - lib/expressions/ref_expression.rb
37
- - lib/expressions/table_expression.rb
38
21
  - lib/version.rb
39
22
  homepage: https://github.com/maedi/expressions
40
23
  licenses: []
data/lib/api.rb DELETED
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'expressions/config_expression'
4
- require_relative 'expressions/table_expression'
5
-
6
- module Expressions
7
- module API
8
- def config(config)
9
- ConfigExpression.new(config:)
10
- end
11
- alias xconfig config
12
-
13
- def ref(reference)
14
- RefExpression.new(reference:)
15
- end
16
- alias xref ref
17
-
18
- def table(table)
19
- TableExpression.new(table:)
20
- end
21
- alias xtable table
22
- end
23
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'low_type'
4
- require_relative 'expression'
5
-
6
- class ValueExpression < Expression
7
- include LowType
8
-
9
- attr_reader :config
10
-
11
- def initialize(config: Hash)
12
- @config = config
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'low_type'
4
- require_relative 'expression'
5
-
6
- class RefExpression < Expression
7
- include LowType
8
-
9
- attr_reader :reference
10
-
11
- def initialize(reference:)
12
- @reference = reference
13
- end
14
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'low_type'
4
- require_relative 'expression'
5
-
6
- # A value expression converts a type to a value in the eyes of Expressions.
7
- class ValueExpression < Expression
8
- include LowType
9
-
10
- attr_reader :config
11
-
12
- def initialize(config: Hash)
13
- @config = config
14
- end
15
- end