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