cql 1.2.0 → 1.2.1

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: d6805bf349ee0cbb1c9f38d2cad8c4b753454e08
4
- data.tar.gz: e7a3dce28a0236ef2423f3d7827353ae2e6c0b77
3
+ metadata.gz: 288eac18d6d8ed4eeb202c52abc6087b811c52da
4
+ data.tar.gz: caae2839ce9f847f7bdcb98ae6b4200b79dec243
5
5
  SHA512:
6
- metadata.gz: ecbf137679cd1cb1f402d543c5177e776950d1a68d36741cdf984743430961c990028fcf6ec416dbdd6583199d431413ba98ad20918f3ec6a90fc17e1e8e43fc
7
- data.tar.gz: 72d5f4d09e184a38fd745b9e22346167b9441e6393942c2906b9e5a8bd56ca171d762961466f300b9e767a511f3b67b43fb76a7ca4cee7e89162faee46d923c2
6
+ metadata.gz: 042ea7bee70217efbacd33eb7426269a43893a74fdf7f6230a75ab50e36acbd7b0cb1f7893c6079ee524160d57ec9e8ac0f5a6197688005aa57999d0ff311c04
7
+ data.tar.gz: e010fbf5f25a61123a40a0d7f0cfbdde84ea187f9282c4ba305b041076c44ed3084e51f344733364b9aeef8236583141e8ad6b990226c16c5a88269acd5a9b88
data/lib/cql/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CQL
2
- VERSION = '1.2.0'
2
+ VERSION = '1.2.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kessler
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-09-26 00:00:00.000000000 Z
12
+ date: 2016-09-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cuke_modeler
@@ -29,100 +29,114 @@ dependencies:
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '0.9'
34
+ version: 12.0.0
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
39
+ - - "<"
40
40
  - !ruby/object:Gem::Version
41
- version: '0.9'
41
+ version: 12.0.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '2.7'
48
+ version: '3.0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '2.7'
55
+ version: '3.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: cucumber
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: 3.0.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - "<"
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: 3.0.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: simplecov
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "<"
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: 1.0.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "<"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: 1.0.0
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: racatt
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: '1.0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: '1.0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: coveralls
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
102
+ - - "<"
103
103
  - !ruby/object:Gem::Version
104
- version: '0'
104
+ version: 1.0.0
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - "<"
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: 1.0.0
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: relish
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: '0.0'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: bundler
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '1.5'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
124
138
  - !ruby/object:Gem::Version
125
- version: '0'
139
+ version: '1.5'
126
140
  description: Cucumber Query Language
127
141
  email: morrow748@gmail.com
128
142
  executables: []
@@ -136,21 +150,6 @@ files:
136
150
  - lib/cql/map_reduce.rb
137
151
  - lib/cql/sso_filters.rb
138
152
  - lib/cql/version.rb
139
- - spec/dsl_spec.rb
140
- - spec/filter_example_spec.rb
141
- - spec/filter_feature_dsl_spec.rb
142
- - spec/filter_sso_spec.rb
143
- - spec/line_count_filterable_specs.rb
144
- - spec/line_filterable_specs.rb
145
- - spec/map_reduce_spec.rb
146
- - spec/multiple_queries_spec.rb
147
- - spec/name_filterable_specs.rb
148
- - spec/repository_spec.rb
149
- - spec/select_feature_dsl_spec.rb
150
- - spec/select_scen_outline_dsl_spec.rb
151
- - spec/select_scenario_dsl_spec.rb
152
- - spec/spec_helper.rb
153
- - spec/tag_filterable_specs.rb
154
153
  homepage: https://github.com/enkessler/cql
155
154
  licenses:
156
155
  - MIT
@@ -183,19 +182,4 @@ rubygems_version: 2.2.5
183
182
  signing_key:
184
183
  specification_version: 4
185
184
  summary: A gem providing functionality to query a Cucumber test suite.
186
- test_files:
187
- - spec/dsl_spec.rb
188
- - spec/filter_example_spec.rb
189
- - spec/filter_feature_dsl_spec.rb
190
- - spec/filter_sso_spec.rb
191
- - spec/line_count_filterable_specs.rb
192
- - spec/line_filterable_specs.rb
193
- - spec/map_reduce_spec.rb
194
- - spec/multiple_queries_spec.rb
195
- - spec/name_filterable_specs.rb
196
- - spec/repository_spec.rb
197
- - spec/select_feature_dsl_spec.rb
198
- - spec/select_scenario_dsl_spec.rb
199
- - spec/select_scen_outline_dsl_spec.rb
200
- - spec/spec_helper.rb
201
- - spec/tag_filterable_specs.rb
185
+ test_files: []
data/spec/dsl_spec.rb DELETED
@@ -1,289 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'dsl' do
4
-
5
-
6
- describe 'invalid query structure' do
7
-
8
- it "will complain if no 'from' clause is specified" do
9
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
10
-
11
- expect {
12
- gs.query do
13
- select
14
- features
15
- end
16
- }.to raise_error(ArgumentError, "A query must specify a 'from' clause")
17
- end
18
-
19
- it "will complain if no 'select' clause is specified" do
20
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
21
-
22
- expect {
23
- gs.query do
24
- from features
25
- end
26
- }.to raise_error(ArgumentError, "A query must specify a 'select' clause")
27
- end
28
-
29
- end
30
-
31
-
32
- describe 'clause ordering' do
33
-
34
- it 'handles intermixed clauses' do
35
- # Clause ordering doesn't matter as long as any given type of clause is ordered correctly with respect to its multiple uses
36
-
37
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
38
-
39
- results = gs.query do
40
- with { |scenario| scenario.name =~ /slurping/ }
41
- as thing1
42
- transform :self => lambda { |thing1| 1 }
43
- select :self
44
- as thing2
45
- with scenarios => lambda { |scenario| scenario.name =~ /3/ }
46
- from scenarios
47
- select :self
48
- transform :self => lambda { |thing2| 2 }
49
- select name
50
- end
51
-
52
- expect(results.first).to eq('thing1' => 1, 'thing2' => 2, 'name' => 'Testing the slurping 3')
53
- end
54
-
55
- end
56
-
57
-
58
- describe "select" do
59
-
60
- it 'correctly selects a single attribute from a model' do
61
- model = CukeModeler::CqlTestModel.new
62
- model.attribute_1 = 'foo'
63
-
64
- repo = CQL::Repository.new(model)
65
-
66
- result = repo.query do
67
- select attribute_1
68
- from cql_test_models
69
- end
70
-
71
-
72
- expect(result).to eq([{'attribute_1' => 'foo'}])
73
- end
74
-
75
- it 'correctly selects multiple attributes from a model' do
76
- model = CukeModeler::CqlTestModel.new
77
- model.attribute_1 = 'foo'
78
- model.attribute_2 = 'bar'
79
-
80
- repo = CQL::Repository.new(model)
81
-
82
- result = repo.query do
83
- select attribute_1, attribute_2
84
- from cql_test_models
85
- end
86
-
87
-
88
- expect(result).to eq([{'attribute_1' => 'foo',
89
- 'attribute_2' => 'bar'}])
90
- end
91
-
92
- it 'complains if an unknown special attribute is queried' do
93
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
94
-
95
- expect {
96
- gs.query do
97
- select :foo
98
- from scenarios
99
- end
100
- }.to raise_error(ArgumentError, ":foo is not a valid attribute for selection.")
101
- end
102
-
103
-
104
- describe "multiple selections" do
105
-
106
- it 'can freely mix empty selections and attribute selections' do
107
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
108
-
109
- base_result = gs.query do
110
- select :self
111
- select name
112
- select :self
113
- from scenarios
114
- end
115
-
116
-
117
- expect(
118
- gs.query do
119
- select
120
- select name
121
- select
122
- from scenarios
123
- end
124
- ).to eq(base_result)
125
- end
126
-
127
- end
128
- end
129
-
130
- describe "from" do
131
-
132
- it "can handle an empty 'from' clause" do
133
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
134
-
135
- result = gs.query do
136
- select name
137
- from
138
- end
139
-
140
- expect(result).to eq([])
141
- end
142
-
143
- describe "multiple targets" do
144
-
145
- it 'raises an exception for inapplicable attributes' do
146
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
147
-
148
- expect {
149
- gs.query do
150
- select name, steps
151
- from features
152
- from scenarios
153
- end
154
- }.to raise_error
155
- end
156
-
157
- end
158
-
159
- describe 'shorthand' do
160
-
161
- it 'should consider an exact match over a pluralization' do
162
- skip('Not sure how to test this without actually have two classes that are so similarly named. It is a required behavior, but not one worth the hassle of testing until it actually comes up.')
163
- end
164
-
165
- it 'raises an exception if the shorthand form of a class cannot be mapped to a real class' do
166
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
167
-
168
- expect {
169
- gs.query do
170
- select name
171
- from not_a_real_class
172
- end
173
- }.to raise_error(ArgumentError, "Class 'CukeModeler::NotARealClass' does not exist")
174
-
175
- end
176
-
177
- it 'can freely mix shorthand and long-form names' do
178
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
179
-
180
- # All long-form
181
- base_result = gs.query do
182
- select name
183
- from CukeModeler::Scenario, CukeModeler::Feature
184
- end
185
-
186
- # All shorthand
187
- expect(
188
- gs.query do
189
- select name
190
- from scenarios, features
191
- end
192
- ).to eq(base_result)
193
-
194
- # A mix of both
195
- expect(
196
- gs.query do
197
- select name
198
- from CukeModeler::Scenario, features
199
- end
200
- ).to eq(base_result)
201
- end
202
-
203
- end
204
-
205
- end
206
-
207
- describe "transform" do
208
-
209
- describe "multiple targets" do
210
-
211
- it 'does not apply more transforms than have been declared' do
212
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
213
-
214
- results = gs.query do
215
- select :self, :self, :self
216
- as thing1, thing2, thing3
217
- from scenarios
218
- transform :self => lambda { |thing1| 1 }
219
- transform :self => lambda { |thing2| 2 }
220
- end
221
-
222
- expect(results.first).to include('thing1' => 1, 'thing2' => 2)
223
- expect(results.first).to_not include('thing3' => 1)
224
- expect(results.first).to_not include('thing3' => 2)
225
- end
226
-
227
- end
228
-
229
- end
230
-
231
-
232
- describe 'with' do
233
-
234
- describe 'targeted' do
235
-
236
- it 'can handle predefined filters' do
237
- gs = CQL::Repository.new(@feature_fixtures_directory)
238
-
239
- expect {
240
- gs.query do
241
- select name
242
- from features, scenarios, outlines
243
- with scenarios => name(/test/)
244
- end
245
- }.to_not raise_error
246
- end
247
-
248
- it 'can handle a block filter' do
249
- gs = CQL::Repository.new(@feature_fixtures_directory)
250
-
251
- expect {
252
- gs.query do
253
- select name
254
- from features, scenarios, outlines
255
- with scenarios => lambda { |scenario| true }
256
- end
257
- }.to_not raise_error
258
- end
259
-
260
- it 'can handle shorthand targets' do
261
- gs = CQL::Repository.new(@feature_fixtures_directory)
262
-
263
- expect {
264
- gs.query do
265
- select name
266
- from features, scenarios, outlines
267
- with scenarios => name(/test/)
268
- end
269
- }.to_not raise_error
270
- end
271
-
272
- it 'can handle multiple targets' do
273
- gs = CQL::Repository.new(@feature_fixtures_directory)
274
-
275
- expect {
276
- gs.query do
277
- select name
278
- from features, scenarios, outlines
279
- with scenarios => lambda { |scenario| true },
280
- outlines => lambda { |outline| true }
281
- end
282
- }.to_not raise_error
283
- end
284
-
285
- end
286
-
287
- end
288
-
289
- end