msfl_visitors 1.0.0 → 1.0.1
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/msfl_visitors/visitor.rb +1 -10
- data/msfl_visitors.gemspec +2 -2
- data/spec/visitors/chewy_term_filter_spec.rb +5 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c117d655ed803271224e2a71689ab1196b7f9ab
|
4
|
+
data.tar.gz: ea8e723de7f14d3e445871ced6e5db2f661db459
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aef4b3739fa0cfe4518b096f4c8fb7381db60e606afe80181c289795cb3f459b5adb4b9e801f2c8ae01f2f88f1b488d3271ffdfdae2dcbd1862fddff3c966508
|
7
|
+
data.tar.gz: 11e15b89492d83ff590bb957d75a500c88217d6be2b8e90e675287109f339850a2385f3b7e098cd95929b2b71584128cb7e6d0d61159ced00fdb2a2d0d28439c
|
@@ -120,8 +120,6 @@ module MSFLVisitors
|
|
120
120
|
def visit(node)
|
121
121
|
case node
|
122
122
|
when Nodes::Partial
|
123
|
-
# { given: Hash[[node.left.accept(visitor), node.right.accept(visitor)]] }
|
124
|
-
|
125
123
|
# build the aggregate criteria clause first
|
126
124
|
# agg_criteria_clause = { clause: { agg_field_name: :portfolio_size, operator: :gt, test_value: 2 }, method_to_execute: :aggregations }
|
127
125
|
agg_criteria_clause = { clause: node.right.accept(visitor), method_to_execute: :aggregations }
|
@@ -134,12 +132,8 @@ module MSFLVisitors
|
|
134
132
|
# return the result of the visitation
|
135
133
|
[agg_criteria_clause, given_clause]
|
136
134
|
|
137
|
-
|
138
|
-
|
139
135
|
when Nodes::Equal
|
140
|
-
# { term: { node.left.accept(visitor) => node.right.accept(visitor) } }
|
141
136
|
{ agg_field_name: node.left.accept(visitor), operator: :eq, test_value: node.right.accept(visitor) }
|
142
|
-
# [{ clause: }]
|
143
137
|
when Nodes::Field
|
144
138
|
node.value.to_sym
|
145
139
|
when Nodes::Date, Nodes::Time
|
@@ -154,17 +148,14 @@ module MSFLVisitors
|
|
154
148
|
Nodes::LessThan,
|
155
149
|
Nodes::LessThanEqual
|
156
150
|
{ agg_field_name: node.left.accept(visitor), operator: RANGE_OPERATORS[node.class], test_value: node.right.accept(visitor) }
|
157
|
-
# { range: { node.left.accept(visitor) => { RANGE_OPERATORS[node.class] => node.right.accept(visitor) } } }
|
158
151
|
when Nodes::Given
|
159
152
|
[:filter, node.contents.first.accept(visitor)]
|
160
153
|
when Nodes::ExplicitFilter
|
161
|
-
# [:filter, node.contents.map { |n| n.accept(visitor) }.reduce({}) { |hsh, x| hsh.merge!(x); hsh } ]
|
162
154
|
node.contents.map { |n| n.accept(visitor) }.first
|
163
155
|
when Nodes::NamedValue
|
164
|
-
# [:aggs, {node.name.accept(visitor).to_sym => Hash[[node.value.accept(visitor)]]}]
|
165
156
|
node.value.accept(visitor)
|
166
157
|
when Nodes::Containment
|
167
|
-
{
|
158
|
+
{ agg_field_name: node.left.accept(visitor).to_sym, operator: :in, test_value: node.right.accept(visitor) }
|
168
159
|
when Nodes::Set
|
169
160
|
node.contents.map { |n| n.accept(visitor) }
|
170
161
|
when Nodes::Filter
|
data/msfl_visitors.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'msfl_visitors'
|
3
|
-
s.version = '1.0.
|
4
|
-
s.date = '2015-05-
|
3
|
+
s.version = '1.0.1'
|
4
|
+
s.date = '2015-05-28'
|
5
5
|
s.summary = "Convert MSFL to other forms"
|
6
6
|
s.description = "Visitor pattern approach to converting MSFL to other forms."
|
7
7
|
s.authors = ["Courtland Caldwell"]
|
@@ -162,8 +162,9 @@ describe MSFLVisitors::Visitor do
|
|
162
162
|
|
163
163
|
before { visitor.mode = :aggregations }
|
164
164
|
|
165
|
-
it "results in: {
|
166
|
-
|
165
|
+
it "results in: { agg_field_name: :lhs, operator: :in, test_value: [\"item_one\", \"item_two\", \"item_three\"] }" do
|
166
|
+
|
167
|
+
expect(subject).to eq({ agg_field_name: :lhs, operator: :in, test_value: ["item_one", "item_two", "item_three"] })
|
167
168
|
end
|
168
169
|
end
|
169
170
|
end
|
@@ -536,9 +537,9 @@ describe MSFLVisitors::Visitor do
|
|
536
537
|
|
537
538
|
before { visitor.mode = :aggregations }
|
538
539
|
|
539
|
-
it "returns: { and: [{
|
540
|
+
it "returns: { and: [{ agg_field_name: :make, operator: :in, test_value: [\"Honda\", \"Chevy\", \"Volvo\"] }, { agg_field_name: :value, operator: :gte, test_value: 1000 } }] }" do
|
540
541
|
expected = { and: [
|
541
|
-
{
|
542
|
+
{ agg_field_name: :make, operator: :in, test_value: ["Honda", "Chevy", "Volvo"] },
|
542
543
|
{ agg_field_name: :value, operator: :gte, test_value: 1000}
|
543
544
|
]}
|
544
545
|
expect(result).to eq expected
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msfl_visitors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Courtland Caldwell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msfl
|