cql 1.2.0 → 1.2.1

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