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 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