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 +4 -4
- data/lib/expression.rb +115 -1
- data/lib/expressions.rb +2 -8
- data/lib/version.rb +1 -1
- metadata +3 -20
- data/lib/api.rb +0 -23
- data/lib/expressions/config_expression.rb +0 -14
- data/lib/expressions/ref_expression.rb +0 -14
- data/lib/expressions/table_expression.rb +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c8215052326e692dcb08710e4686ac6369559e851b0e48bcb4d93379a383d0e5
|
|
4
|
+
data.tar.gz: 6690f34a2798474dd3feb6b3afadd105cdf7d24e96d88efa55765be9bdfdd5be
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
-
|
|
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(:
|
|
8
|
+
config = Struct.new(:something)
|
|
15
9
|
@config ||= config.new(true)
|
|
16
10
|
end
|
|
17
11
|
|
data/lib/version.rb
CHANGED
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.
|
|
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
|
-
|
|
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,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
|