cql 0.3.0 → 1.0.0
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.
- data/lib/cql.rb +86 -34
- data/lib/cql/dsl.rb +152 -0
- data/lib/cql/feature_filters.rb +14 -0
- data/lib/cql/filters.rb +74 -0
- data/lib/cql/map_reduce.rb +48 -0
- data/lib/cql/sso_filters.rb +26 -0
- data/lib/cql/version.rb +3 -0
- data/spec/dsl_spec.rb +51 -0
- data/spec/filter_example_spec.rb +65 -0
- data/spec/filter_feature_dsl_spec.rb +13 -12
- data/spec/filter_sso_spec.rb +54 -14
- data/spec/line_count_filterable_specs.rb +4 -4
- data/spec/map_reduce_spec.rb +13 -11
- data/spec/multiple_queries_spec.rb +5 -9
- data/spec/name_filterable_specs.rb +1 -1
- data/spec/repository_spec.rb +17 -0
- data/spec/select_feature_dsl_spec.rb +28 -106
- data/spec/select_scen_outline_dsl_spec.rb +75 -166
- data/spec/select_scenario_dsl_spec.rb +37 -72
- data/spec/spec_helper.rb +4 -1
- data/spec/tag_filterable_specs.rb +5 -5
- metadata +79 -12
- checksums.yaml +0 -15
- data/lib/dsl.rb +0 -111
- data/lib/feature_filters.rb +0 -89
- data/lib/map_reduce.rb +0 -104
- data/lib/sso_filters.rb +0 -82
@@ -11,38 +11,38 @@ describe "select" do
|
|
11
11
|
from scenarios
|
12
12
|
end
|
13
13
|
|
14
|
-
expect(result).to
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
14
|
+
expect(result).to match_array([{"tags" => ["@two"]},
|
15
|
+
{"tags" => ["@one"]},
|
16
|
+
{"tags" => []},
|
17
|
+
{"tags" => ["@two"]},
|
18
|
+
{"tags" => ["@one"]},
|
19
|
+
{"tags" => ["@two", "@four"]},
|
20
|
+
{"tags" => ["@one", "@five"]},
|
21
|
+
{"tags" => []},
|
22
|
+
{"tags" => ["@two"]},
|
23
|
+
{"tags" => ["@one"]}])
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'should return descriptions from scenarios' do
|
27
27
|
gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/table")
|
28
28
|
|
29
29
|
result = gs.query do
|
30
|
-
select
|
30
|
+
select description_text
|
31
31
|
from scenarios
|
32
32
|
end
|
33
33
|
|
34
|
-
expect(result).to eq([{"
|
34
|
+
expect(result).to eq([{"description_text" => "Scenario description."}])
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should return lines from scenarios' do
|
38
38
|
gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
|
39
39
|
|
40
40
|
result = gr.query do
|
41
|
-
select
|
41
|
+
select source_line
|
42
42
|
from scenarios
|
43
43
|
end
|
44
44
|
|
45
|
-
expect(result).to eq([{"
|
45
|
+
expect(result).to eq([{"source_line" => 6}, {"source_line" => 11}, {"source_line" => 16}, {"source_line" => 21}])
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should return names from scenarios' do
|
@@ -61,7 +61,9 @@ describe "select" do
|
|
61
61
|
gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
|
62
62
|
|
63
63
|
result = gs.query do
|
64
|
-
select
|
64
|
+
select raw_element
|
65
|
+
as 'type'
|
66
|
+
transform 'raw_element' => lambda { |element| element['type'] }
|
65
67
|
from scenarios
|
66
68
|
end
|
67
69
|
|
@@ -73,7 +75,9 @@ describe "select" do
|
|
73
75
|
gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
|
74
76
|
|
75
77
|
result = gs.query do
|
76
|
-
select
|
78
|
+
select raw_element
|
79
|
+
as step_lines
|
80
|
+
transform 'raw_element' => lambda { |element| element['steps'].collect { |step| step['keyword'] + step['name'] } }
|
77
81
|
from scenarios
|
78
82
|
end
|
79
83
|
|
@@ -87,7 +91,9 @@ describe "select" do
|
|
87
91
|
gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
|
88
92
|
|
89
93
|
result = gs.query do
|
90
|
-
select
|
94
|
+
select raw_element
|
95
|
+
as 'id'
|
96
|
+
transform 'raw_element' => lambda { |element| element['id'] }
|
91
97
|
from scenarios
|
92
98
|
end
|
93
99
|
|
@@ -101,7 +107,9 @@ describe "select" do
|
|
101
107
|
gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
|
102
108
|
|
103
109
|
result = gs.query do
|
104
|
-
select
|
110
|
+
select raw_element
|
111
|
+
as steps
|
112
|
+
transform 'raw_element' => lambda { |element| element['steps'] }
|
105
113
|
from scenarios
|
106
114
|
end
|
107
115
|
|
@@ -119,10 +127,10 @@ describe "select" do
|
|
119
127
|
from scenarios
|
120
128
|
end
|
121
129
|
|
122
|
-
expect(result).to eq([{"name" => "Testing the slurping", "tags" => [
|
123
|
-
{"name" => "Testing again", "tags" => [
|
124
|
-
{"name" => "Testing yet again", "tags" => [
|
125
|
-
{"name" => "Testing yet again part 2", "tags" => [
|
130
|
+
expect(result).to eq([{"name" => "Testing the slurping", "tags" => ["@one"]},
|
131
|
+
{"name" => "Testing again", "tags" => ["@two"]},
|
132
|
+
{"name" => "Testing yet again", "tags" => ["@one"]},
|
133
|
+
{"name" => "Testing yet again part 2", "tags" => ["@one", "@two"]}])
|
126
134
|
end
|
127
135
|
|
128
136
|
it 'should return things from multiple feature files' do
|
@@ -133,64 +141,21 @@ describe "select" do
|
|
133
141
|
from scenarios
|
134
142
|
end
|
135
143
|
|
136
|
-
expect(result).to
|
137
|
-
|
138
|
-
|
139
|
-
|
144
|
+
expect(result).to match_array([{"name" => "Has a table"}, {"name" => "Testing the slurping 1"},
|
145
|
+
{"name" => "Testing the slurping not to be found"}, {"name" => "Testing the slurping 2"},
|
146
|
+
{"name" => "Testing the slurping 3"}, {"name" => "Testing again"},
|
147
|
+
{"name" => "Testing yet again"}, {"name" => "Testing yet again part 2"}])
|
140
148
|
end
|
141
149
|
|
142
150
|
it 'should get multiple scenarios as a list of maps' do
|
143
151
|
gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
|
144
152
|
result = gr.query do
|
145
|
-
select
|
146
|
-
from scenarios
|
147
|
-
end
|
148
|
-
|
149
|
-
expect(result).to eq([{'line' => 6, 'name' => "Testing the slurping"}, {'line' => 11, 'name' => "Testing again"},
|
150
|
-
{'line' => 16, 'name' => "Testing yet again"}, {'line' => 21, 'name' => "Testing yet again part 2"}])
|
151
|
-
end
|
152
|
-
|
153
|
-
it "should return all, complete, everything from scenarios" do
|
154
|
-
gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/table")
|
155
|
-
|
156
|
-
expected = [{"all" => {"keyword" => "Scenario",
|
157
|
-
"name" => "Has a table",
|
158
|
-
"line" => 4,
|
159
|
-
"description" => "Scenario description.",
|
160
|
-
"tags" => [{"name" => "@scenario_tag",
|
161
|
-
"line" => 3}],
|
162
|
-
"id" => "simple;has-a-table",
|
163
|
-
"type" => "scenario",
|
164
|
-
"steps" => [{"keyword" => "Given ",
|
165
|
-
"name" => "Something",
|
166
|
-
"line" => 7,
|
167
|
-
"rows" => [{"cells" => ["a", "a"],
|
168
|
-
"line" => 8},
|
169
|
-
{"cells" => ["s", "a"],
|
170
|
-
"line" => 9},
|
171
|
-
{"cells" => ["s", "s"],
|
172
|
-
"line" => 10}]},
|
173
|
-
{"keyword" => "Then ",
|
174
|
-
"name" => "something else",
|
175
|
-
"line" => 11}]}}]
|
176
|
-
|
177
|
-
result = gr.query do
|
178
|
-
select all
|
153
|
+
select source_line, name
|
179
154
|
from scenarios
|
180
155
|
end
|
181
|
-
expect(result).to eq(expected)
|
182
156
|
|
183
|
-
result
|
184
|
-
|
185
|
-
from scenarios
|
186
|
-
end
|
187
|
-
expect(result).to eq(expected)
|
188
|
-
|
189
|
-
result = gr.query do
|
190
|
-
select everything
|
191
|
-
from scenarios
|
192
|
-
end
|
193
|
-
expect(result).to eq(expected)
|
157
|
+
expect(result).to eq([{'source_line' => 6, 'name' => "Testing the slurping"}, {'source_line' => 11, 'name' => "Testing again"},
|
158
|
+
{'source_line' => 16, 'name' => "Testing yet again"}, {'source_line' => 21, 'name' => "Testing yet again part 2"}])
|
194
159
|
end
|
195
160
|
|
196
161
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -16,7 +16,7 @@ shared_examples_for 'a tag filterable target set' do |target_type, test_data|
|
|
16
16
|
with tags tag
|
17
17
|
end
|
18
18
|
|
19
|
-
expect(result).to
|
19
|
+
expect(result).to match_array(expected)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -48,7 +48,7 @@ shared_examples_for 'a tag filterable target set' do |target_type, test_data|
|
|
48
48
|
with tc lt number
|
49
49
|
end
|
50
50
|
|
51
|
-
expect(result).to
|
51
|
+
expect(result).to match_array(expected)
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -64,7 +64,7 @@ shared_examples_for 'a tag filterable target set' do |target_type, test_data|
|
|
64
64
|
with tc lte number
|
65
65
|
end
|
66
66
|
|
67
|
-
expect(result).to
|
67
|
+
expect(result).to match_array(expected)
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
@@ -81,7 +81,7 @@ shared_examples_for 'a tag filterable target set' do |target_type, test_data|
|
|
81
81
|
with tc gt number
|
82
82
|
end
|
83
83
|
|
84
|
-
expect(result).to
|
84
|
+
expect(result).to match_array(expected)
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
@@ -98,7 +98,7 @@ shared_examples_for 'a tag filterable target set' do |target_type, test_data|
|
|
98
98
|
with tc gte number
|
99
99
|
end
|
100
100
|
|
101
|
-
expect(result).to
|
101
|
+
expect(result).to match_array(expected)
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
metadata
CHANGED
@@ -1,19 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
|
-
- Jarrod Folino
|
8
8
|
- Eric Kessler
|
9
|
+
- Jarrod Folino
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2015-09-11 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: cuke_modeler
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
20
|
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
@@ -21,6 +23,23 @@ dependencies:
|
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: backports
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
type: :runtime
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
24
43
|
requirements:
|
25
44
|
- - ! '>='
|
26
45
|
- !ruby/object:Gem::Version
|
@@ -28,6 +47,7 @@ dependencies:
|
|
28
47
|
- !ruby/object:Gem::Dependency
|
29
48
|
name: rake
|
30
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
31
51
|
requirements:
|
32
52
|
- - ! '>='
|
33
53
|
- !ruby/object:Gem::Version
|
@@ -35,6 +55,7 @@ dependencies:
|
|
35
55
|
type: :development
|
36
56
|
prerelease: false
|
37
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
38
59
|
requirements:
|
39
60
|
- - ! '>='
|
40
61
|
- !ruby/object:Gem::Version
|
@@ -42,6 +63,7 @@ dependencies:
|
|
42
63
|
- !ruby/object:Gem::Dependency
|
43
64
|
name: rspec
|
44
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
45
67
|
requirements:
|
46
68
|
- - ~>
|
47
69
|
- !ruby/object:Gem::Version
|
@@ -49,6 +71,7 @@ dependencies:
|
|
49
71
|
type: :development
|
50
72
|
prerelease: false
|
51
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
52
75
|
requirements:
|
53
76
|
- - ~>
|
54
77
|
- !ruby/object:Gem::Version
|
@@ -56,6 +79,7 @@ dependencies:
|
|
56
79
|
- !ruby/object:Gem::Dependency
|
57
80
|
name: cucumber
|
58
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
59
83
|
requirements:
|
60
84
|
- - ! '>='
|
61
85
|
- !ruby/object:Gem::Version
|
@@ -63,6 +87,7 @@ dependencies:
|
|
63
87
|
type: :development
|
64
88
|
prerelease: false
|
65
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
66
91
|
requirements:
|
67
92
|
- - ! '>='
|
68
93
|
- !ruby/object:Gem::Version
|
@@ -70,6 +95,39 @@ dependencies:
|
|
70
95
|
- !ruby/object:Gem::Dependency
|
71
96
|
name: simplecov
|
72
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: racatt
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: coveralls
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
73
131
|
requirements:
|
74
132
|
- - ! '>='
|
75
133
|
- !ruby/object:Gem::Version
|
@@ -77,6 +135,7 @@ dependencies:
|
|
77
135
|
type: :development
|
78
136
|
prerelease: false
|
79
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
80
139
|
requirements:
|
81
140
|
- - ! '>='
|
82
141
|
- !ruby/object:Gem::Version
|
@@ -87,11 +146,15 @@ executables: []
|
|
87
146
|
extensions: []
|
88
147
|
extra_rdoc_files: []
|
89
148
|
files:
|
149
|
+
- lib/cql/dsl.rb
|
150
|
+
- lib/cql/feature_filters.rb
|
151
|
+
- lib/cql/filters.rb
|
152
|
+
- lib/cql/map_reduce.rb
|
153
|
+
- lib/cql/sso_filters.rb
|
154
|
+
- lib/cql/version.rb
|
90
155
|
- lib/cql.rb
|
91
|
-
-
|
92
|
-
-
|
93
|
-
- lib/map_reduce.rb
|
94
|
-
- lib/sso_filters.rb
|
156
|
+
- spec/dsl_spec.rb
|
157
|
+
- spec/filter_example_spec.rb
|
95
158
|
- spec/filter_feature_dsl_spec.rb
|
96
159
|
- spec/filter_sso_spec.rb
|
97
160
|
- spec/line_count_filterable_specs.rb
|
@@ -99,15 +162,15 @@ files:
|
|
99
162
|
- spec/map_reduce_spec.rb
|
100
163
|
- spec/multiple_queries_spec.rb
|
101
164
|
- spec/name_filterable_specs.rb
|
165
|
+
- spec/repository_spec.rb
|
102
166
|
- spec/select_feature_dsl_spec.rb
|
103
167
|
- spec/select_scenario_dsl_spec.rb
|
104
168
|
- spec/select_scen_outline_dsl_spec.rb
|
105
169
|
- spec/spec_helper.rb
|
106
170
|
- spec/tag_filterable_specs.rb
|
107
|
-
homepage:
|
171
|
+
homepage: https://github.com/enkessler/cql
|
108
172
|
licenses:
|
109
173
|
- MIT
|
110
|
-
metadata: {}
|
111
174
|
post_install_message: ! '
|
112
175
|
|
113
176
|
(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)
|
@@ -125,22 +188,26 @@ rdoc_options:
|
|
125
188
|
require_paths:
|
126
189
|
- lib
|
127
190
|
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
128
192
|
requirements:
|
129
193
|
- - ! '>='
|
130
194
|
- !ruby/object:Gem::Version
|
131
195
|
version: '0'
|
132
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
197
|
+
none: false
|
133
198
|
requirements:
|
134
199
|
- - ! '>='
|
135
200
|
- !ruby/object:Gem::Version
|
136
201
|
version: '0'
|
137
202
|
requirements: []
|
138
203
|
rubyforge_project:
|
139
|
-
rubygems_version:
|
204
|
+
rubygems_version: 1.8.29
|
140
205
|
signing_key:
|
141
|
-
specification_version:
|
206
|
+
specification_version: 3
|
142
207
|
summary: A gem providing functionality to query a Cucumber test suite.
|
143
208
|
test_files:
|
209
|
+
- spec/dsl_spec.rb
|
210
|
+
- spec/filter_example_spec.rb
|
144
211
|
- spec/filter_feature_dsl_spec.rb
|
145
212
|
- spec/filter_sso_spec.rb
|
146
213
|
- spec/line_count_filterable_specs.rb
|
@@ -148,9 +215,9 @@ test_files:
|
|
148
215
|
- spec/map_reduce_spec.rb
|
149
216
|
- spec/multiple_queries_spec.rb
|
150
217
|
- spec/name_filterable_specs.rb
|
218
|
+
- spec/repository_spec.rb
|
151
219
|
- spec/select_feature_dsl_spec.rb
|
152
220
|
- spec/select_scenario_dsl_spec.rb
|
153
221
|
- spec/select_scen_outline_dsl_spec.rb
|
154
222
|
- spec/spec_helper.rb
|
155
223
|
- spec/tag_filterable_specs.rb
|
156
|
-
has_rdoc:
|