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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78d429ddb4c1a32e2dbf1cdda725aca9debe57fa
4
- data.tar.gz: c2e440ab6d0533077a6fb69ebe1c896b6b640b4d
3
+ metadata.gz: 6c117d655ed803271224e2a71689ab1196b7f9ab
4
+ data.tar.gz: ea8e723de7f14d3e445871ced6e5db2f661db459
5
5
  SHA512:
6
- metadata.gz: 0716d9f199190a2a70e39a115b9dbb6cf0381a5784f94a9fecac4e0a3c7693b8027acc04875e34cd4b93569db9cb13a6c6574925d99a4afba792c3f45838d0b5
7
- data.tar.gz: 653e1798ceedb81c272148888ef471552c0ea6097c58a0c328f4a1a599a3e8f41a298db950e08b2828c6f19696b696ee5e86b054110c7eb4239e6ef791e9bf6b
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
- { terms: {node.left.accept(visitor).to_sym => node.right.accept(visitor)} }
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
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'msfl_visitors'
3
- s.version = '1.0.0'
4
- s.date = '2015-05-27'
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: { terms: { lhs: [\"item_one\", \"item_two\", \"item_three\"] } }" do
166
- expect(subject).to eq({ terms: { lhs: ["item_one", "item_two", "item_three"] } })
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: [{ terms: { make: [\"Honda\",\"Chevy\",\"Volvo\"]} }, { agg_field_name: :value, operator: :gte, test_value: 1000 } }] }" do
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
- { terms: { make: ["Honda", "Chevy", "Volvo"] } },
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.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-27 00:00:00.000000000 Z
11
+ date: 2015-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msfl