expressions 0.0.0 → 0.2.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: fe2fb3f9d190a1fd4e7b3503a201e411507d711ec2361c3948832c54bf6dc560
4
+ data.tar.gz: 2f957fc944f04f5718cab603b542d03b53b894fdacaebd47c5f8e9ee8989daed
5
5
  SHA512:
6
- metadata.gz: 97e5594dee261bec79b74fe168a9d719a27788f3e3ef63bd59da9557f9b583a00387cb1f8737f201136467c0c0a9dcd28da2e2c57a64fed239d4dfaaaa4c0e4d
7
- data.tar.gz: 501f239468eea5f335b87bd311a94c69398cbd075acbe3eccb4bc8b8d5330e7cf9b6ee61e45b2bc38ad543b3f8a62cee4e4fc1ae3b7c1379a14b509873af60d6
6
+ metadata.gz: e875cf32f9bd79819277717b0e19e4a3af5651f5578981c062bb118a07fbb20f7e32938de65472bb94072e053410504aba26eb5682212abe54ef53486caf373b
7
+ data.tar.gz: 6fd04d2eb2c7ac8ff183797d3a472c92ba1d6e018064a06e680fa3f51855c561c382d92fd8f89932b2bb02923fffdb5a76eb85cf7babe19cfdd0484e667c5421
data/lib/expression.rb CHANGED
@@ -8,10 +8,128 @@ 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
+ def types
60
+ [self.class]
61
+ end
62
+
63
+ class << self
64
+ def |(expression)
65
+ self.new | expression
66
+ end
67
+ end
68
+
69
+ private
70
+
71
+ def value?(expression)
72
+ !expression.instance_of?(Class)
73
+ end
74
+
75
+ def union_expression(expression)
76
+ nil
77
+ end
78
+
79
+ def union_value(value)
80
+ nil
81
+ end
82
+
83
+ def union_type(type)
84
+ nil
85
+ end
86
+
87
+ def gt_expression(expression)
88
+ nil
89
+ end
90
+
91
+ def gt_value(value)
92
+ nil
93
+ end
94
+
95
+ def gt_type(type)
96
+ nil
97
+ end
98
+
99
+ def lt_expression(expression)
100
+ nil
101
+ end
102
+
103
+ def lt_value(value)
104
+ nil
105
+ end
106
+
107
+ def lt_type(type)
108
+ nil
109
+ end
110
+
111
+ def gt_or_et_expression(expression)
112
+ nil
113
+ end
114
+
115
+ def gt_or_et_value(value)
116
+ nil
117
+ end
118
+
119
+ def gt_or_et_type(type)
120
+ nil
121
+ end
122
+
123
+ def lt_or_et_expression(expression)
124
+ nil
125
+ end
126
+
127
+ def lt_or_et_value(value)
128
+ nil
129
+ end
130
+
131
+ def lt_or_et_type(type)
132
+ nil
133
+ end
16
134
  end
17
135
  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.2.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.2.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: []
@@ -55,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
38
  - !ruby/object:Gem::Version
56
39
  version: '0'
57
40
  requirements: []
58
- rubygems_version: 3.7.2
41
+ rubygems_version: 4.0.6
59
42
  specification_version: 4
60
43
  summary: Expressions evaluate into useful objects
61
44
  test_files: []
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