transpec 2.3.0 → 2.3.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +49 -0
- data/README.md.erb +73 -27
- data/lib/transpec/converter.rb +3 -1
- data/lib/transpec/syntax/rspec_configure.rb +0 -1
- data/lib/transpec/version.rb +1 -1
- data/spec/transpec/converter_spec.rb +18 -0
- data/tasks/readme.rake +18 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c90c3e229024fe5588256af42c0ac3fdc30f146a
|
4
|
+
data.tar.gz: 3d786286cac9c9298c9aaa073288ad2bb1e83a50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28e8ac6dacd5834196381b9510bd3b4d8394f084eedfb584407a7a6234d68cd3fe6da89957a7b7be2f7481c0f3ab0aa43e25655554885bd3258a626faf59f793
|
7
|
+
data.tar.gz: ee3405cacf7e33bcfe378ebc55af52e9b69d4e2041bc78cdbb8e363706ae0b9011f65db64c6a8b94ea69a5291b0aa9e74c0827fb50254baa974a6d3d19d47c7f
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
## Development
|
4
4
|
|
5
|
+
## v2.3.1
|
6
|
+
|
7
|
+
* Remove conversion support for non-existent configuration option `backtrace_cleaner=`.
|
8
|
+
* Add missing way to disable conversion of deprecated configuration options with `--keep deprecated`.
|
9
|
+
|
5
10
|
## v2.3.0
|
6
11
|
|
7
12
|
* Report configuration modifications of `RSpec.configure` in the final summary.
|
data/README.md
CHANGED
@@ -479,6 +479,7 @@ The one-liner (implicit receiver) `should`:
|
|
479
479
|
* [Current example object](#current-example-object)
|
480
480
|
* [Custom matcher DSL](#custom-matcher-dsl)
|
481
481
|
* [Implicit spec types in rspec-rails](#implicit-spec-types-in-rspec-rails)
|
482
|
+
* [Deprecated configuration options](#deprecated-configuration-options)
|
482
483
|
* [Monkey-patched example groups](#monkey-patched-example-groups)
|
483
484
|
* [Hook scope aliases](#hook-scope-aliases)
|
484
485
|
|
@@ -1300,6 +1301,54 @@ end
|
|
1300
1301
|
* Deprecation: deprecated since RSpec 2.99, removed in RSpec 3.0
|
1301
1302
|
* See also: [Consider making example group mixins more explicit · rspec/rspec-rails](https://github.com/rspec/rspec-rails/issues/662)
|
1302
1303
|
|
1304
|
+
### Deprecated configuration options
|
1305
|
+
|
1306
|
+
Targets:
|
1307
|
+
|
1308
|
+
```ruby
|
1309
|
+
RSpec.configure do |c|
|
1310
|
+
c.backtrace_clean_patterns
|
1311
|
+
c.backtrace_clean_patterns = [/lib\/something/]
|
1312
|
+
c.color_enabled = true
|
1313
|
+
|
1314
|
+
c.out
|
1315
|
+
c.out = File.open('output.txt', 'w')
|
1316
|
+
c.output
|
1317
|
+
c.output = File.open('output.txt', 'w')
|
1318
|
+
|
1319
|
+
c.backtrace_cleaner
|
1320
|
+
c.color?(output)
|
1321
|
+
c.filename_pattern
|
1322
|
+
c.filename_pattern = '**/*_test.rb'
|
1323
|
+
c.warnings
|
1324
|
+
end
|
1325
|
+
```
|
1326
|
+
|
1327
|
+
Will be converted to:
|
1328
|
+
|
1329
|
+
```ruby
|
1330
|
+
RSpec.configure do |c|
|
1331
|
+
c.backtrace_exclusion_patterns
|
1332
|
+
c.backtrace_exclusion_patterns = [/lib\/something/]
|
1333
|
+
c.color = true
|
1334
|
+
|
1335
|
+
# RSpec 2.99.0.beta1 or later
|
1336
|
+
c.output_stream
|
1337
|
+
c.output_stream = File.open('output.txt', 'w')
|
1338
|
+
c.output_stream
|
1339
|
+
c.output_stream = File.open('output.txt', 'w')
|
1340
|
+
|
1341
|
+
# RSpec 2.99.0.rc1 or later
|
1342
|
+
c.backtrace_formatter
|
1343
|
+
c.color_enabled?(output)
|
1344
|
+
c.pattern
|
1345
|
+
c.pattern = '**/*_test.rb'
|
1346
|
+
c.warnings?
|
1347
|
+
end
|
1348
|
+
```
|
1349
|
+
|
1350
|
+
* This conversion can be disabled by: `--keep deprecated`
|
1351
|
+
|
1303
1352
|
### Monkey-patched example groups
|
1304
1353
|
|
1305
1354
|
This conversion is **disabled by default** and available only if your project's RSpec is **3.0.0.beta2 or later**.
|
data/README.md.erb
CHANGED
@@ -234,7 +234,7 @@ conversion_type_table = <<END
|
|
234
234
|
`deprecated` | All other deprecated syntaxes | Latest syntaxes
|
235
235
|
END
|
236
236
|
|
237
|
-
validate_syntax_type_table(conversion_type_table,
|
237
|
+
validate_syntax_type_table(conversion_type_table, OptionParser::CONFIG_ATTRS_FOR_KEEP_TYPES.keys)
|
238
238
|
conversion_type_table
|
239
239
|
-%>
|
240
240
|
|
@@ -263,7 +263,7 @@ conversion_type_table = <<END
|
|
263
263
|
`stub_with_hash` | `obj.stub(:message => value)` | `allow(obj).to receive(:message).and_return(value)`
|
264
264
|
END
|
265
265
|
|
266
|
-
validate_syntax_type_table(conversion_type_table,
|
266
|
+
validate_syntax_type_table(conversion_type_table, OptionParser::CONFIG_ATTRS_FOR_CONVERT_TYPES.keys)
|
267
267
|
conversion_type_table
|
268
268
|
-%>
|
269
269
|
|
@@ -339,16 +339,15 @@ END
|
|
339
339
|
<%= convert(example).gsub('original spec', 'converted spec') -%>
|
340
340
|
|
341
341
|
<%=
|
342
|
-
convert(example, cli: ['-p'])
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
end
|
342
|
+
converted = convert(example, cli: ['-p'])
|
343
|
+
converted.gsub!(
|
344
|
+
'original spec',
|
345
|
+
'converted spec with -p/--no-parens-matcher-arg option'
|
346
|
+
)
|
347
|
+
insert_comment_above(converted, '{ key: value }', [
|
348
|
+
'With non-operator method, the parentheses are always required',
|
349
|
+
'to prevent the hash from being interpreted as a block.'
|
350
|
+
])
|
352
351
|
-%>
|
353
352
|
```
|
354
353
|
|
@@ -477,7 +476,7 @@ Will be converted to:
|
|
477
476
|
|
478
477
|
### One-liner expectations
|
479
478
|
|
480
|
-
This conversion is available only if your project's RSpec is **<%= rspec_version =
|
479
|
+
This conversion is available only if your project's RSpec is **<%= rspec_version = RSpecVersion.oneliner_is_expected_available_version %> or later**.
|
481
480
|
|
482
481
|
Targets:
|
483
482
|
|
@@ -542,7 +541,7 @@ This conversion is combined with the conversion of [standard expectations](#stan
|
|
542
541
|
|
543
542
|
### Boolean matchers
|
544
543
|
|
545
|
-
This conversion is available only if your project's RSpec is **<%= rspec_version =
|
544
|
+
This conversion is available only if your project's RSpec is **<%= rspec_version = RSpecVersion.be_truthy_available_version %> or later**.
|
546
545
|
|
547
546
|
Targets:
|
548
547
|
|
@@ -978,7 +977,7 @@ Will be converted to:
|
|
978
977
|
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
979
978
|
|
980
979
|
# Conversion from `stub_chain` to `receive_message_chain` is available
|
981
|
-
# only if the target project's RSpec is <%= rspec_version =
|
980
|
+
# only if the target project's RSpec is <%= rspec_version = RSpecVersion.receive_message_chain_available_version %> or later
|
982
981
|
<%= convert(stub_chain_example, wrap_with: :example, rspec_version: rspec_version) -%>
|
983
982
|
|
984
983
|
<%= convert(any_instance_example, wrap_with: :example) -%>
|
@@ -1007,13 +1006,13 @@ END
|
|
1007
1006
|
Will be converted to:
|
1008
1007
|
|
1009
1008
|
```ruby
|
1010
|
-
# If the target project's RSpec is <%= rspec_version =
|
1009
|
+
# If the target project's RSpec is <%= rspec_version = RSpecVersion.receive_messages_available_version %> or later
|
1011
1010
|
<%= convert(example, wrap_with: :example, rspec_version: rspec_version) -%>
|
1012
1011
|
|
1013
|
-
# If the target project's RSpec is prior to <%=
|
1012
|
+
# If the target project's RSpec is prior to <%= RSpecVersion.receive_messages_available_version %>
|
1014
1013
|
<%= convert(example, wrap_with: :example, rspec_version: Transpec.required_rspec_version).chomp -%> # No conversion
|
1015
1014
|
|
1016
|
-
# If the target project's RSpec is prior to <%=
|
1015
|
+
# If the target project's RSpec is prior to <%= RSpecVersion.receive_messages_available_version %>
|
1017
1016
|
# and `--convert stub-with-hash` is specified
|
1018
1017
|
<%= convert(example, wrap_with: :example, rspec_version: Transpec.required_rspec_version, cli: ['--convert', 'stub_with_hash']) -%>
|
1019
1018
|
```
|
@@ -1109,7 +1108,7 @@ Will be converted to:
|
|
1109
1108
|
|
1110
1109
|
### `any_instance` implementation blocks
|
1111
1110
|
|
1112
|
-
This conversion is available only if your project's RSpec is **`>= <%=
|
1111
|
+
This conversion is available only if your project's RSpec is **`>= <%= RSpecVersion::RSPEC_2_99 %>` and `< <%= RSpecVersion::RSPEC_3_0 %>`**.
|
1113
1112
|
|
1114
1113
|
Targets:
|
1115
1114
|
|
@@ -1132,7 +1131,7 @@ END
|
|
1132
1131
|
Will be converted to:
|
1133
1132
|
|
1134
1133
|
```ruby
|
1135
|
-
<% rspec_version =
|
1134
|
+
<% rspec_version = RSpecVersion.yielding_receiver_to_any_instance_implementation_block_available_version -%>
|
1136
1135
|
<%= convert(example, rspec_version: rspec_version) -%>
|
1137
1136
|
```
|
1138
1137
|
|
@@ -1171,7 +1170,7 @@ Will be converted to:
|
|
1171
1170
|
|
1172
1171
|
### Pending examples
|
1173
1172
|
|
1174
|
-
This conversion is available only if your project's RSpec is **`>= <%=
|
1173
|
+
This conversion is available only if your project's RSpec is **`>= <%= RSpecVersion::RSPEC_2_99 %>` and `< <%= RSpecVersion::RSPEC_3_0 %>`**.
|
1175
1174
|
|
1176
1175
|
Targets:
|
1177
1176
|
|
@@ -1206,7 +1205,7 @@ Will be converted to:
|
|
1206
1205
|
|
1207
1206
|
```ruby
|
1208
1207
|
<%=
|
1209
|
-
convert(example, rspec_version:
|
1208
|
+
convert(example, rspec_version: RSpecVersion.skip_available_version)
|
1210
1209
|
.gsub('pending', 'pending # #pending with block is no longer supported')
|
1211
1210
|
-%>
|
1212
1211
|
```
|
@@ -1229,7 +1228,7 @@ Here's an excerpt from [the warning](https://github.com/rspec/rspec-core/blob/v2
|
|
1229
1228
|
|
1230
1229
|
### Current example object
|
1231
1230
|
|
1232
|
-
This conversion is available only if your project's RSpec is **<%= rspec_version =
|
1231
|
+
This conversion is available only if your project's RSpec is **<%= rspec_version = RSpecVersion.yielded_example_available_version %> or later**.
|
1233
1232
|
|
1234
1233
|
Targets:
|
1235
1234
|
|
@@ -1279,7 +1278,7 @@ Here's an excerpt from [the warning](https://github.com/rspec/rspec-core/blob/7d
|
|
1279
1278
|
|
1280
1279
|
### Custom matcher DSL
|
1281
1280
|
|
1282
|
-
This conversion is available only if your project's RSpec is **<%= rspec_version =
|
1281
|
+
This conversion is available only if your project's RSpec is **<%= rspec_version = RSpecVersion.non_should_matcher_protocol_available_version %> or later**.
|
1283
1282
|
|
1284
1283
|
Targets:
|
1285
1284
|
|
@@ -1308,7 +1307,7 @@ Will be converted to:
|
|
1308
1307
|
|
1309
1308
|
### Implicit spec types in rspec-rails
|
1310
1309
|
|
1311
|
-
This conversion is **available only if `rspec-rails` is loaded** in your spec and your project's RSpec is **<%= rspec_version =
|
1310
|
+
This conversion is **available only if `rspec-rails` is loaded** in your spec and your project's RSpec is **<%= rspec_version = RSpecVersion.implicit_spec_type_disablement_available_version %> or later**.
|
1312
1311
|
|
1313
1312
|
Targets:
|
1314
1313
|
|
@@ -1341,9 +1340,56 @@ Or with `--no-explicit-spec-type` option they will be converted to:
|
|
1341
1340
|
* Deprecation: deprecated since RSpec 2.99, removed in RSpec 3.0
|
1342
1341
|
* See also: [Consider making example group mixins more explicit · rspec/rspec-rails](https://github.com/rspec/rspec-rails/issues/662)
|
1343
1342
|
|
1343
|
+
### Deprecated configuration options
|
1344
|
+
|
1345
|
+
Targets:
|
1346
|
+
|
1347
|
+
```ruby
|
1348
|
+
<%=
|
1349
|
+
example = <<END
|
1350
|
+
RSpec.configure do |c|
|
1351
|
+
c.backtrace_clean_patterns
|
1352
|
+
c.backtrace_clean_patterns = [/lib\\/something/]
|
1353
|
+
c.color_enabled = true
|
1354
|
+
|
1355
|
+
c.out
|
1356
|
+
c.out = File.open('output.txt', 'w')
|
1357
|
+
c.output
|
1358
|
+
c.output = File.open('output.txt', 'w')
|
1359
|
+
|
1360
|
+
c.backtrace_cleaner
|
1361
|
+
c.color?(output)
|
1362
|
+
c.filename_pattern
|
1363
|
+
c.filename_pattern = '**/*_test.rb'
|
1364
|
+
c.warnings
|
1365
|
+
end
|
1366
|
+
END
|
1367
|
+
-%>
|
1368
|
+
```
|
1369
|
+
|
1370
|
+
Will be converted to:
|
1371
|
+
|
1372
|
+
```ruby
|
1373
|
+
<%=
|
1374
|
+
converted = convert(example, rspec_version: RSpecVersion.new('3.0.0'))
|
1375
|
+
|
1376
|
+
[
|
1377
|
+
['c.output_stream', :config_output_stream],
|
1378
|
+
['c.backtrace_formatter', :config_backtrace_formatter],
|
1379
|
+
].each do |pattern, feature|
|
1380
|
+
rspec_version = RSpecVersion.send("#{feature}_available_version")
|
1381
|
+
converted = insert_comment_above(converted, pattern, "RSpec #{rspec_version} or later")
|
1382
|
+
end
|
1383
|
+
|
1384
|
+
converted
|
1385
|
+
-%>
|
1386
|
+
```
|
1387
|
+
|
1388
|
+
* This conversion can be disabled by: `--keep deprecated`
|
1389
|
+
|
1344
1390
|
### Monkey-patched example groups
|
1345
1391
|
|
1346
|
-
This conversion is **disabled by default** and available only if your project's RSpec is **<%= rspec_version =
|
1392
|
+
This conversion is **disabled by default** and available only if your project's RSpec is **<%= rspec_version = RSpecVersion.non_monkey_patch_example_group_available_version %> or later**.
|
1347
1393
|
|
1348
1394
|
Targets:
|
1349
1395
|
|
@@ -1376,7 +1422,7 @@ Will be converted to:
|
|
1376
1422
|
|
1377
1423
|
### Hook scope aliases
|
1378
1424
|
|
1379
|
-
This conversion is **disabled by default** and available only if your project's RSpec is **<%= rspec_version =
|
1425
|
+
This conversion is **disabled by default** and available only if your project's RSpec is **<%= rspec_version = RSpecVersion.hook_scope_alias_available_version %> or later**.
|
1380
1426
|
|
1381
1427
|
Targets:
|
1382
1428
|
|
data/lib/transpec/converter.rb
CHANGED
@@ -165,7 +165,9 @@ module Transpec
|
|
165
165
|
end
|
166
166
|
|
167
167
|
def process_rspec_configure(rspec_configure)
|
168
|
-
|
168
|
+
if config.convert_deprecated_method?
|
169
|
+
rspec_configure.convert_deprecated_options!(rspec_version)
|
170
|
+
end
|
169
171
|
|
170
172
|
if spec_suite.main_rspec_configure_node?(rspec_configure.node)
|
171
173
|
if rspec_version.non_monkey_patch_example_group_available? &&
|
@@ -88,7 +88,6 @@ module Transpec
|
|
88
88
|
|
89
89
|
if rspec_version.config_backtrace_formatter_available?
|
90
90
|
replace_config!(:backtrace_cleaner, :backtrace_formatter)
|
91
|
-
replace_config!(:backtrace_cleaner=, :backtrace_formatter=)
|
92
91
|
end
|
93
92
|
|
94
93
|
if rspec_version.config_predicate_color_enabled_available?
|
data/lib/transpec/version.rb
CHANGED
@@ -1140,6 +1140,24 @@ module Transpec
|
|
1140
1140
|
).as_null_object
|
1141
1141
|
end
|
1142
1142
|
|
1143
|
+
context 'when Config#convert_deprecated_method? returns true' do
|
1144
|
+
before { config.convert_deprecated_method = true }
|
1145
|
+
|
1146
|
+
it 'invokes RSpecConfigure#convert_deprecated_options! with RSpecVersion' do
|
1147
|
+
rspec_configure.should_receive(:convert_deprecated_options!).with(rspec_version)
|
1148
|
+
converter.process_rspec_configure(rspec_configure)
|
1149
|
+
end
|
1150
|
+
end
|
1151
|
+
|
1152
|
+
context 'when Config#convert_deprecated_method? returns false' do
|
1153
|
+
before { config.convert_deprecated_method = false }
|
1154
|
+
|
1155
|
+
it 'does not invoke RSpecConfigure#convert_deprecated_options!' do
|
1156
|
+
rspec_configure.should_not_receive(:convert_deprecated_options!)
|
1157
|
+
converter.process_rspec_configure(rspec_configure)
|
1158
|
+
end
|
1159
|
+
end
|
1160
|
+
|
1143
1161
|
context 'when RSpecVersion#rspec_2_99? returns true' do
|
1144
1162
|
before do
|
1145
1163
|
rspec_version.stub(:rspec_2_99?).and_return(true)
|
data/tasks/readme.rake
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
+
require 'transpec'
|
4
|
+
|
3
5
|
desc 'Generate README.md'
|
4
6
|
task :readme do
|
5
7
|
puts 'Generating README.md...'
|
@@ -33,11 +35,12 @@ def generate_readme
|
|
33
35
|
end
|
34
36
|
|
35
37
|
class READMEContext
|
38
|
+
include Transpec
|
39
|
+
|
36
40
|
attr_reader :readme
|
37
41
|
|
38
42
|
def initialize(readme)
|
39
43
|
@readme = readme
|
40
|
-
require 'transpec'
|
41
44
|
require 'transpec/cli'
|
42
45
|
require 'stringio'
|
43
46
|
require 'tmpdir'
|
@@ -159,4 +162,18 @@ class READMEContext
|
|
159
162
|
fail "No descriptions for syntax types #{types_missing_description}"
|
160
163
|
end
|
161
164
|
end
|
165
|
+
|
166
|
+
def insert_comment_above(code, pattern, comments)
|
167
|
+
regexp = Regexp.new('^([ \t]*).*' + Regexp.escape(pattern))
|
168
|
+
|
169
|
+
code.sub(regexp) do |match|
|
170
|
+
indentation = Regexp.last_match(1)
|
171
|
+
replacement = ''
|
172
|
+
Array(comments).each do |comment|
|
173
|
+
comment = comment.to_s.chomp
|
174
|
+
replacement << "#{indentation}# #{comment}\n"
|
175
|
+
end
|
176
|
+
replacement << match
|
177
|
+
end
|
178
|
+
end
|
162
179
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transpec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Nakayama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|