msfl_visitors 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|