msfl_visitors 1.1.0.dev1 → 1.1.0.dev2
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/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
|