msfl_visitors 1.1.0.dev1 → 1.1.0.dev2
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/nodes/and.rb +15 -0
- data/msfl_visitors.gemspec +1 -1
- data/spec/msfl_visitors/nodes/and_spec.rb +21 -0
- data/spec/{parsers → msfl_visitors/parsers}/msfl_parser_spec.rb +5 -1
- data/spec/msfl_visitors/visitor_spec.rb +14 -0
- metadata +11 -7
- /data/spec/{nodes → msfl_visitors/nodes}/iterator_spec.rb +0 -0
- /data/spec/{visitors → msfl_visitors/visitors}/chewy_term_filter_spec.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45becd6e90f826ce123e6f4c5ee389e37c4f3337
|
4
|
+
data.tar.gz: 87baa18d96cba72ef39deecf22447ecb7a7c30f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf1b9343cdf9a64ad46c916b36c37d5eb06c8cb43cb224329194722ad7af915e5e0069ce126004c68c4e46cdcd3e437dd0bcaf100986e5855ffe74a874a083dd
|
7
|
+
data.tar.gz: c034ae9ca6db09fdc7ebc67387a61903e08de3cc8b84e1de735bd0607ac20a3b2688a029203bbd2ce16202ef48b05d51b4be0332e114f6b00c34e11045a0aa49
|
@@ -1,7 +1,22 @@
|
|
1
1
|
require_relative 'iterator'
|
2
|
+
require_relative 'value'
|
2
3
|
module MSFLVisitors
|
3
4
|
module Nodes
|
4
5
|
class And < Iterator
|
6
|
+
|
7
|
+
def initialize(set)
|
8
|
+
super
|
9
|
+
unless valid_set_children?
|
10
|
+
fail ArgumentError, "Members of child Set node of And node must be expressions, not values, only containment Set nodes have values as children."
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def valid_set_children?
|
16
|
+
set.each do |child|
|
17
|
+
return false if child.is_a?(Value)
|
18
|
+
end
|
19
|
+
end
|
5
20
|
end
|
6
21
|
end
|
7
22
|
end
|
data/msfl_visitors.gemspec
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MSFLVisitors::Nodes::And do
|
4
|
+
|
5
|
+
context "when creating an instance of #{described_class}" do
|
6
|
+
|
7
|
+
subject { described_class.new node }
|
8
|
+
|
9
|
+
context "when passed as Set node as the argument to the constructor" do
|
10
|
+
|
11
|
+
let(:node) { MSFLVisitors::Nodes::Set.new [MSFLVisitors::Nodes::Number.new(1)] }
|
12
|
+
|
13
|
+
context "when the Set contains any nodes which inherit from Value" do
|
14
|
+
|
15
|
+
it "raises an ArgumentError" do
|
16
|
+
expect { subject }.to raise_error ArgumentError
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -196,10 +196,14 @@ describe MSFLVisitors::Parsers::MSFLParser do
|
|
196
196
|
|
197
197
|
describe "parsing an and filter" do
|
198
198
|
|
199
|
-
let(:filter) { { and:
|
199
|
+
let(:filter) { { and: MSFL::Types::Set.new([{ value: 1000 }]) } }
|
200
200
|
|
201
201
|
let(:and_node) { MSFLVisitors::Nodes::And.new set_node }
|
202
202
|
|
203
|
+
let(:set_node) { MSFLVisitors::Nodes::Set.new filter_node }
|
204
|
+
|
205
|
+
let(:filter_node) { MSFLVisitors::Nodes::Filter.new(MSFLVisitors::Nodes::Equal.new left, right) }
|
206
|
+
|
203
207
|
it "is the expected And node" do
|
204
208
|
expect(subject).to eq expected_node.call(and_node)
|
205
209
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MSFLVisitors::Visitor do
|
4
|
+
|
5
|
+
context "when creating an instance of #{described_class}" do
|
6
|
+
|
7
|
+
subject { described_class.new }
|
8
|
+
|
9
|
+
it "sets the mode to term" do
|
10
|
+
subject
|
11
|
+
expect(subject.send(:mode)).to eq :term
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msfl_visitors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.0.
|
4
|
+
version: 1.1.0.dev2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Courtland Caldwell
|
@@ -149,11 +149,13 @@ files:
|
|
149
149
|
- lib/msfl_visitors/visitor.rb
|
150
150
|
- msfl_visitors.gemspec
|
151
151
|
- simplecov_custom_profiles.rb
|
152
|
+
- spec/msfl_visitors/nodes/and_spec.rb
|
153
|
+
- spec/msfl_visitors/nodes/iterator_spec.rb
|
154
|
+
- spec/msfl_visitors/parsers/msfl_parser_spec.rb
|
155
|
+
- spec/msfl_visitors/visitor_spec.rb
|
156
|
+
- spec/msfl_visitors/visitors/chewy_term_filter_spec.rb
|
152
157
|
- spec/msfl_visitors_spec.rb
|
153
|
-
- spec/nodes/iterator_spec.rb
|
154
|
-
- spec/parsers/msfl_parser_spec.rb
|
155
158
|
- spec/spec_helper.rb
|
156
|
-
- spec/visitors/chewy_term_filter_spec.rb
|
157
159
|
homepage: https://github.com/Referly/msfl_visitors
|
158
160
|
licenses:
|
159
161
|
- MIT
|
@@ -179,9 +181,11 @@ signing_key:
|
|
179
181
|
specification_version: 4
|
180
182
|
summary: Convert MSFL to other forms
|
181
183
|
test_files:
|
184
|
+
- spec/msfl_visitors/nodes/and_spec.rb
|
185
|
+
- spec/msfl_visitors/nodes/iterator_spec.rb
|
186
|
+
- spec/msfl_visitors/parsers/msfl_parser_spec.rb
|
187
|
+
- spec/msfl_visitors/visitor_spec.rb
|
188
|
+
- spec/msfl_visitors/visitors/chewy_term_filter_spec.rb
|
182
189
|
- spec/msfl_visitors_spec.rb
|
183
|
-
- spec/nodes/iterator_spec.rb
|
184
|
-
- spec/parsers/msfl_parser_spec.rb
|
185
190
|
- spec/spec_helper.rb
|
186
|
-
- spec/visitors/chewy_term_filter_spec.rb
|
187
191
|
has_rdoc:
|
File without changes
|
File without changes
|