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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae62acf6b12fb294d8010a5edfb6a931e8a1d117
4
- data.tar.gz: f442b027daf2a25c48743d9b3b427d779fc4e921
3
+ metadata.gz: 45becd6e90f826ce123e6f4c5ee389e37c4f3337
4
+ data.tar.gz: 87baa18d96cba72ef39deecf22447ecb7a7c30f3
5
5
  SHA512:
6
- metadata.gz: 0e93bd8a1a9d1071f4a9bb280fbc5b9293c7b5c4912130bdf8d1f58dc9b6895f597a50f9e346ba5c2824fcef0516fd1b26c065e47b38792979cbfb195ef26f65
7
- data.tar.gz: c3e2d39332b9f1fefd8536121e682b09865014837cf38d0638fe6397c4f77540b7b50755fbb24edc89d84477e5100ef6bd40f3308bcd0140b9b2c7712de9162a
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'msfl_visitors'
3
- s.version = '1.1.0.dev1'
3
+ s.version = '1.1.0.dev2'
4
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."
@@ -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: set_of_values } }
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.dev1
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: