transpec 1.4.1 → 1.5.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +6 -0
- data/Guardfile +1 -1
- data/README.md +8 -18
- data/README.md.erb +14 -24
- data/lib/transpec/cli.rb +6 -4
- data/lib/transpec/commit_message.rb +3 -2
- data/lib/transpec/configuration.rb +1 -2
- data/lib/transpec/option_parser.rb +18 -17
- data/lib/transpec/rspec_version.rb +18 -32
- data/lib/transpec/syntax/rspec_configure.rb +2 -3
- data/lib/transpec/syntax/should.rb +4 -5
- data/lib/transpec/syntax/should_receive.rb +2 -5
- data/lib/transpec/version.rb +2 -2
- data/spec/transpec/cli_spec.rb +27 -31
- data/spec/transpec/commit_message_spec.rb +6 -4
- data/spec/transpec/configuration_spec.rb +0 -1
- data/spec/transpec/option_parser_spec.rb +10 -11
- data/spec/transpec/syntax/should_spec.rb +2 -2
- data/tasks/lib/transpec_demo.rb +1 -1
- metadata +34 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb53fd56a9663b6ac60c9fcb539aa9f08ce4ef48
|
4
|
+
data.tar.gz: 483a8e18c082daa89c45a80a67397c5fab6dc7df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29bdf20766286e22243e0d615b2cb934d86272ad6fec7b2a67d3e53fdb6c19d19f732c95ad3ff7fd6f7bf6732b9665c99d7f9e79a490af3ee4c2ba6a2812afe2
|
7
|
+
data.tar.gz: eeee1c1f55c9dfa1893be85c04a576f62286a35a60ce0359acbc91c1bf530a334cf6b47345525aa70ce2ec2730f05b20eb29f0159e3ecf700a22b0296a2dd014
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
## Development
|
4
4
|
|
5
|
+
## v1.5.0
|
6
|
+
|
7
|
+
* Mention the project's RSpec version in the auto-generated commit message
|
8
|
+
* Deprecate `-m/--generate-commit-message` option (A commit message will always be generated)
|
9
|
+
* Display actual `Proc` constructor names in the summary of expectations on block
|
10
|
+
|
5
11
|
## v1.4.1
|
6
12
|
|
7
13
|
* Support Ruby 2.1 runtime by falling back to Ruby 2.0 parser
|
data/Guardfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# A sample Guardfile
|
2
2
|
# More info at https://github.com/guard/guard#readme
|
3
3
|
|
4
|
-
guard :rspec, all_after_pass: true, all_on_start: true,
|
4
|
+
guard :rspec, all_after_pass: true, all_on_start: true, cmd: 'bundle exec rspec' do
|
5
5
|
watch(%r{^spec/.+_spec\.rb$})
|
6
6
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
7
7
|
watch('spec/spec_helper.rb') { "spec" }
|
data/README.md
CHANGED
@@ -113,15 +113,15 @@ Usually you don't need to add `transpec` to your `*.gemspec` or `Gemfile` since
|
|
113
113
|
|
114
114
|
Before converting your specs:
|
115
115
|
|
116
|
-
* Make sure your project has `rspec` gem dependency
|
116
|
+
* Make sure your project has `rspec` gem dependency **2.14** or later. If not, change your `*.gemspec` or `Gemfile` to do so.
|
117
117
|
* Run `rspec` and check if all the specs pass.
|
118
118
|
* Ensure the Git repository is clean. (You don't want to mix up your changes and Transpec's changes, right?)
|
119
119
|
|
120
|
-
Then, run `transpec`
|
120
|
+
Then, run `transpec` in the project root directory:
|
121
121
|
|
122
122
|
```bash
|
123
123
|
$ cd some-project
|
124
|
-
$ transpec
|
124
|
+
$ transpec
|
125
125
|
Copying the project for dynamic analysis...
|
126
126
|
Running dynamic analysis with command "bundle exec rspec"...
|
127
127
|
...............................................................................
|
@@ -145,7 +145,7 @@ After the conversion, run `rspec` again and check whether everything is green:
|
|
145
145
|
$ bundle exec rspec
|
146
146
|
```
|
147
147
|
|
148
|
-
If it's green, commit the changes with auto-generated message:
|
148
|
+
If it's green, commit the changes with an auto-generated message that describes the conversion summary:
|
149
149
|
|
150
150
|
```bash
|
151
151
|
$ git commit -aeF .git/COMMIT_EDITMSG
|
@@ -181,7 +181,7 @@ Skip dynamic analysis and convert with only static analysis. Note that specifyin
|
|
181
181
|
|
182
182
|
### `-c/--rspec-command`
|
183
183
|
|
184
|
-
Specify a command to run
|
184
|
+
Specify a command to run your specs that is used for dynamic analysis.
|
185
185
|
|
186
186
|
Transpec needs to run your specs in a copied project directory for dynamic analysis.
|
187
187
|
If your project requires some special setups or commands to run specs, use this option.
|
@@ -191,17 +191,6 @@ If your project requires some special setups or commands to run specs, use this
|
|
191
191
|
$ transpec --rspec-command "./special_setup.sh && bundle exec rspec"
|
192
192
|
```
|
193
193
|
|
194
|
-
### `-m/--generate-commit-message`
|
195
|
-
|
196
|
-
Generate a commit message that describes conversion summary.
|
197
|
-
Currently only Git is supported.
|
198
|
-
|
199
|
-
When you commit, you need to run the following command to use the generated message:
|
200
|
-
|
201
|
-
```bash
|
202
|
-
$ git commit -eF .git/COMMIT_EDITMSG
|
203
|
-
```
|
204
|
-
|
205
194
|
### `-k/--keep`
|
206
195
|
|
207
196
|
Keep specific syntaxes by disabling conversions.
|
@@ -218,7 +207,7 @@ Type | Target Syntax | Converted Syntax
|
|
218
207
|
`oneliner` | `it { should ... }` | `it { is_expected.to ... }`
|
219
208
|
`should_receive` | `obj.should_receive` | `expect(obj).to receive`
|
220
209
|
`stub` | `obj.stub` | `allow(obj).to receive`
|
221
|
-
`have_items` | `expect(obj).to have(
|
210
|
+
`have_items` | `expect(obj).to have(n).items` | `expect(obj.size).to eq(n)`
|
222
211
|
`its` | `its(:attr) { }` | `describe { subject { }; it { } }`
|
223
212
|
`deprecated` | `obj.stub!`, `mock('foo')`, etc. | `obj.stub`, `double('foo')`
|
224
213
|
|
@@ -620,7 +609,7 @@ allow(obj).to receive(:bar).and_return(2)
|
|
620
609
|
allow(obj).to receive_messages(:foo => 1, :bar => 2)
|
621
610
|
|
622
611
|
# Conversion from `stub_chain` to `receive_message_chain` is available
|
623
|
-
# only if the target project's rspec gem dependency is
|
612
|
+
# only if the target project's rspec gem dependency is 3.0.0.beta2 or later
|
624
613
|
allow(obj).to receive_message_chain(:foo, :bar, :baz)
|
625
614
|
|
626
615
|
allow_any_instance_of(Klass).to receive(:foo)
|
@@ -648,6 +637,7 @@ Otherwise `obj.stub(:foo => 1, :bar => 2)` will be converted to two `allow(obj).
|
|
648
637
|
* See also:
|
649
638
|
* [RSpec's new message expectation syntax - Tea is awesome.](http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/)
|
650
639
|
* [allow receive with multiple methods · rspec/rspec-mocks](https://github.com/rspec/rspec-mocks/issues/368)
|
640
|
+
* [Bring back stub_chain (receive_message_chain) · rspec/rspec-mocks](https://github.com/rspec/rspec-mocks/issues/464)
|
651
641
|
|
652
642
|
### Deprecated method stub aliases
|
653
643
|
|
data/README.md.erb
CHANGED
@@ -86,15 +86,15 @@ Usually you don't need to add `transpec` to your `*.gemspec` or `Gemfile` since
|
|
86
86
|
|
87
87
|
Before converting your specs:
|
88
88
|
|
89
|
-
* Make sure your project has `rspec` gem dependency
|
89
|
+
* Make sure your project has `rspec` gem dependency **<%= Transpec.required_rspec_version %>** or later. If not, change your `*.gemspec` or `Gemfile` to do so.
|
90
90
|
* Run `rspec` and check if all the specs pass.
|
91
91
|
* Ensure the Git repository is clean. (You don't want to mix up your changes and Transpec's changes, right?)
|
92
92
|
|
93
|
-
Then, run `transpec`
|
93
|
+
Then, run `transpec` in the project root directory:
|
94
94
|
|
95
95
|
```bash
|
96
96
|
$ cd some-project
|
97
|
-
$ transpec
|
97
|
+
$ transpec
|
98
98
|
Copying the project for dynamic analysis...
|
99
99
|
Running dynamic analysis with command "bundle exec rspec"...
|
100
100
|
...............................................................................
|
@@ -118,7 +118,7 @@ After the conversion, run `rspec` again and check whether everything is green:
|
|
118
118
|
$ bundle exec rspec
|
119
119
|
```
|
120
120
|
|
121
|
-
If it's green, commit the changes with auto-generated message:
|
121
|
+
If it's green, commit the changes with an auto-generated message that describes the conversion summary:
|
122
122
|
|
123
123
|
```bash
|
124
124
|
$ git commit -aeF .git/COMMIT_EDITMSG
|
@@ -154,7 +154,7 @@ Skip dynamic analysis and convert with only static analysis. Note that specifyin
|
|
154
154
|
|
155
155
|
### `-c/--rspec-command`
|
156
156
|
|
157
|
-
Specify a command to run
|
157
|
+
Specify a command to run your specs that is used for dynamic analysis.
|
158
158
|
|
159
159
|
Transpec needs to run your specs in a copied project directory for dynamic analysis.
|
160
160
|
If your project requires some special setups or commands to run specs, use this option.
|
@@ -164,17 +164,6 @@ If your project requires some special setups or commands to run specs, use this
|
|
164
164
|
$ transpec --rspec-command "./special_setup.sh && bundle exec rspec"
|
165
165
|
```
|
166
166
|
|
167
|
-
### `-m/--generate-commit-message`
|
168
|
-
|
169
|
-
Generate a commit message that describes conversion summary.
|
170
|
-
Currently only Git is supported.
|
171
|
-
|
172
|
-
When you commit, you need to run the following command to use the generated message:
|
173
|
-
|
174
|
-
```bash
|
175
|
-
$ git commit -eF .git/COMMIT_EDITMSG
|
176
|
-
```
|
177
|
-
|
178
167
|
### `-k/--keep`
|
179
168
|
|
180
169
|
Keep specific syntaxes by disabling conversions.
|
@@ -193,7 +182,7 @@ conversion_type_table = <<END
|
|
193
182
|
`oneliner` | `it { should ... }` | `it { is_expected.to ... }`
|
194
183
|
`should_receive` | `obj.should_receive` | `expect(obj).to receive`
|
195
184
|
`stub` | `obj.stub` | `allow(obj).to receive`
|
196
|
-
`have_items` | `expect(obj).to have(
|
185
|
+
`have_items` | `expect(obj).to have(n).items` | `expect(obj.size).to eq(n)`
|
197
186
|
`its` | `its(:attr) { }` | `describe { subject { }; it { } }`
|
198
187
|
`deprecated` | `obj.stub!`, `mock('foo')`, etc. | `obj.stub`, `double('foo')`
|
199
188
|
END
|
@@ -355,7 +344,7 @@ expect(obj).to_not matcher # with `--negative-form to_not`
|
|
355
344
|
|
356
345
|
### One-liner expectations
|
357
346
|
|
358
|
-
**This conversion is available only if your project has `rspec` gem dependency
|
347
|
+
**This conversion is available only if your project has `rspec` gem dependency `<%= Transpec::RSpecVersion.one_liner_is_expected_available_version %>` or later.**
|
359
348
|
|
360
349
|
```ruby
|
361
350
|
# Targets
|
@@ -402,7 +391,7 @@ This conversion is combined with the conversion of [standard expectations](#stan
|
|
402
391
|
|
403
392
|
### Boolean matchers
|
404
393
|
|
405
|
-
**This conversion is available only if your project has `rspec` gem dependency
|
394
|
+
**This conversion is available only if your project has `rspec` gem dependency `<%= Transpec::RSpecVersion.be_truthy_available_version %>` or later.**
|
406
395
|
|
407
396
|
```ruby
|
408
397
|
# Targets
|
@@ -608,15 +597,15 @@ Klass.any_instance.stub(:foo)
|
|
608
597
|
# Converted
|
609
598
|
allow(obj).to receive(:foo)
|
610
599
|
|
611
|
-
# If the target project's rspec gem dependency is prior to
|
600
|
+
# If the target project's rspec gem dependency is prior to <%= Transpec::RSpecVersion.receive_messages_available_version %>
|
612
601
|
allow(obj).to receive(:foo).and_return(1)
|
613
602
|
allow(obj).to receive(:bar).and_return(2)
|
614
603
|
|
615
|
-
# If the target project's rspec gem dependency is
|
604
|
+
# If the target project's rspec gem dependency is <%= Transpec::RSpecVersion.receive_messages_available_version %> or later
|
616
605
|
allow(obj).to receive_messages(:foo => 1, :bar => 2)
|
617
606
|
|
618
607
|
# Conversion from `stub_chain` to `receive_message_chain` is available
|
619
|
-
# only if the target project's rspec gem dependency is
|
608
|
+
# only if the target project's rspec gem dependency is <%= Transpec::RSpecVersion.receive_message_chain_available_version %> or later
|
620
609
|
allow(obj).to receive_message_chain(:foo, :bar, :baz)
|
621
610
|
|
622
611
|
allow_any_instance_of(Klass).to receive(:foo)
|
@@ -644,6 +633,7 @@ Otherwise `obj.stub(:foo => 1, :bar => 2)` will be converted to two `allow(obj).
|
|
644
633
|
* See also:
|
645
634
|
* [RSpec's new message expectation syntax - Tea is awesome.](http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/)
|
646
635
|
* [allow receive with multiple methods · rspec/rspec-mocks](https://github.com/rspec/rspec-mocks/issues/368)
|
636
|
+
* [Bring back stub_chain (receive_message_chain) · rspec/rspec-mocks](https://github.com/rspec/rspec-mocks/issues/464)
|
647
637
|
|
648
638
|
### Deprecated method stub aliases
|
649
639
|
|
@@ -727,7 +717,7 @@ If you choose so, disable this conversion by either:
|
|
727
717
|
|
728
718
|
### Current example object
|
729
719
|
|
730
|
-
**This conversion is available only if your project has `rspec` gem dependency
|
720
|
+
**This conversion is available only if your project has `rspec` gem dependency `<%= Transpec::RSpecVersion.yielded_example_available_version %>` or later.**
|
731
721
|
|
732
722
|
```ruby
|
733
723
|
# Targets
|
@@ -751,7 +741,7 @@ END
|
|
751
741
|
|
752
742
|
# Converted
|
753
743
|
<%=
|
754
|
-
rspec_version = Transpec::RSpecVersion.
|
744
|
+
rspec_version = Transpec::RSpecVersion.yielded_example_available_version
|
755
745
|
Transpec::Converter.new(nil, rspec_version).convert(example_target)
|
756
746
|
-%>
|
757
747
|
```
|
data/lib/transpec/cli.rb
CHANGED
@@ -36,7 +36,7 @@ module Transpec
|
|
36
36
|
process(paths)
|
37
37
|
|
38
38
|
display_summary
|
39
|
-
generate_commit_message
|
39
|
+
generate_commit_message
|
40
40
|
display_final_guide
|
41
41
|
|
42
42
|
true
|
@@ -105,13 +105,15 @@ module Transpec
|
|
105
105
|
|
106
106
|
def generate_commit_message
|
107
107
|
return if @report.records.empty?
|
108
|
+
return unless Git.command_available? && Git.inside_of_repository?
|
108
109
|
|
109
|
-
commit_message = CommitMessage.new(@report, ARGV)
|
110
|
+
commit_message = CommitMessage.new(@report, @project.rspec_version, ARGV)
|
110
111
|
Git.write_commit_message(commit_message.to_s)
|
111
112
|
|
112
113
|
puts
|
113
|
-
puts 'A commit message was generated to
|
114
|
-
puts '
|
114
|
+
puts 'A commit message that describes the conversion summary was generated to'.color(:cyan)
|
115
|
+
puts '.git/COMMIT_EDITMSG. To use the message, type the following command for'.color(:cyan)
|
116
|
+
puts 'the next commit:'.color(:cyan)
|
115
117
|
puts ' git commit -eF .git/COMMIT_EDITMSG'
|
116
118
|
end
|
117
119
|
|
@@ -4,8 +4,9 @@ require 'transpec/version'
|
|
4
4
|
|
5
5
|
module Transpec
|
6
6
|
class CommitMessage
|
7
|
-
def initialize(report, cli_args = [])
|
7
|
+
def initialize(report, rspec_version, cli_args = [])
|
8
8
|
@report = report
|
9
|
+
@rspec_version = rspec_version
|
9
10
|
@cli_args = cli_args
|
10
11
|
end
|
11
12
|
|
@@ -13,7 +14,7 @@ module Transpec
|
|
13
14
|
conversion_summary = @report.summary(bullet: '*', separate_by_blank_line: true)
|
14
15
|
|
15
16
|
<<-END.gsub(/^\s+\|/, '').chomp
|
16
|
-
|Convert specs to
|
17
|
+
|Convert specs to RSpec #{@rspec_version} syntax with Transpec
|
17
18
|
|
|
18
19
|
|This conversion is done by Transpec #{Transpec::Version} with the following command:
|
19
20
|
| transpec #{@cli_args.join(' ')}
|
@@ -16,8 +16,7 @@ module Transpec
|
|
16
16
|
[:convert_deprecated_method, true],
|
17
17
|
[:parenthesize_matcher_arg, true],
|
18
18
|
[:forced, false],
|
19
|
-
[:skip_dynamic_analysis, false]
|
20
|
-
[:generate_commit_message, false]
|
19
|
+
[:skip_dynamic_analysis, false]
|
21
20
|
].freeze
|
22
21
|
|
23
22
|
PREDICATES.each do |predicate, _|
|
@@ -32,7 +32,7 @@ module Transpec
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def parse(args)
|
35
|
-
args = args
|
35
|
+
args = exclude_deprecated_options(args)
|
36
36
|
@parser.parse!(args)
|
37
37
|
args
|
38
38
|
end
|
@@ -59,14 +59,6 @@ module Transpec
|
|
59
59
|
@configuration.rspec_command = command
|
60
60
|
end
|
61
61
|
|
62
|
-
define_option('-m', '--generate-commit-message') do
|
63
|
-
unless Git.inside_of_repository?
|
64
|
-
fail '-m/--generate-commit-message option is specified but not in a Git repository'
|
65
|
-
end
|
66
|
-
|
67
|
-
@configuration.generate_commit_message = true
|
68
|
-
end
|
69
|
-
|
70
62
|
define_option('-k', '--keep TYPE[,TYPE...]') do |types|
|
71
63
|
types.split(',').each do |type|
|
72
64
|
config_attr = CONFIG_ATTRS_FOR_KEEP_TYPES[type.to_sym]
|
@@ -128,14 +120,10 @@ module Transpec
|
|
128
120
|
'option decreases the conversion accuracy.'
|
129
121
|
],
|
130
122
|
'-c' => [
|
131
|
-
'Specify command to run
|
132
|
-
'dynamic analysis.',
|
123
|
+
'Specify a command to run your specs that is',
|
124
|
+
'used for dynamic analysis.',
|
133
125
|
'Default: "bundle exec rspec"'
|
134
126
|
],
|
135
|
-
'-m' => [
|
136
|
-
'Generate commit message that describes',
|
137
|
-
'conversion summary. Only Git is supported.'
|
138
|
-
],
|
139
127
|
'-k' => [
|
140
128
|
'Keep specific syntaxes by disabling',
|
141
129
|
'conversions.',
|
@@ -144,13 +132,13 @@ module Transpec
|
|
144
132
|
" #{'oneliner'.bright} (from #{'should'.underline} to #{'is_expected.to'.underline})",
|
145
133
|
" #{'should_receive'.bright} (to #{'expect(obj).to receive'.underline})",
|
146
134
|
" #{'stub'.bright} (to #{'allow(obj).to receive'.underline})",
|
147
|
-
" #{'have_items'.bright} (to #{'expect(obj.size).to eq(
|
135
|
+
" #{'have_items'.bright} (to #{'expect(obj.size).to eq(n)'.underline})",
|
148
136
|
" #{'its'.bright} (to #{'describe { subject { }; it { } }'.underline})",
|
149
137
|
" #{'deprecated'.bright} (e.g. from #{'mock'.underline} to #{'double'.underline})",
|
150
138
|
'These are all converted by default.'
|
151
139
|
],
|
152
140
|
'-n' => [
|
153
|
-
"Specify negative form of #{'to'.underline} that is used in",
|
141
|
+
"Specify a negative form of #{'to'.underline} that is used in",
|
154
142
|
"the #{'expect(...).to'.underline} syntax.",
|
155
143
|
"Either #{'not_to'.bright} or #{'to_not'.bright}.",
|
156
144
|
"Default: #{'not_to'.bright}"
|
@@ -186,5 +174,18 @@ module Transpec
|
|
186
174
|
}
|
187
175
|
end
|
188
176
|
# rubocop:enable MethodLength, AlignHash
|
177
|
+
|
178
|
+
def exclude_deprecated_options(args)
|
179
|
+
args.reject do |arg|
|
180
|
+
case arg
|
181
|
+
when '-m', '--generate-commit-message'
|
182
|
+
warn 'DEPRECATION: -m/--generate-commit-message option is deprecated. ' +
|
183
|
+
'A commit message will always be generated.'
|
184
|
+
true
|
185
|
+
else
|
186
|
+
false
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
189
190
|
end
|
190
191
|
end
|
@@ -8,20 +8,20 @@ module Transpec
|
|
8
8
|
class RSpecVersion
|
9
9
|
include Comparable
|
10
10
|
|
11
|
-
# http://www.ruby-doc.org/stdlib-2.0.0/libdoc/rubygems/rdoc/Gem/Version.html
|
12
|
-
#
|
13
|
-
# If any part contains letters (currently only a-z are supported) then that version is
|
14
|
-
# considered prerelease.
|
15
|
-
# Prerelease parts are sorted alphabetically using the normal Ruby string sorting rules.
|
16
|
-
# If a prerelease part contains both letters and numbers, it will be broken into multiple parts
|
17
|
-
# to provide expected sort behavior (1.0.a10 becomes 1.0.a.10, and is greater than 1.0.a9).
|
18
|
-
GEM_VERSION_2_99_0_BETA1 = Gem::Version.new('2.99.0.beta1')
|
19
|
-
GEM_VERSION_2_99_0_BETA2 = Gem::Version.new('2.99.0.beta2')
|
20
|
-
GEM_VERSION_3_0_0_BETA1 = Gem::Version.new('3.0.0.beta1')
|
21
|
-
GEM_VERSION_3_0_0_BETA2 = Gem::Version.new('3.0.0.beta2')
|
22
|
-
|
23
11
|
attr_reader :gem_version
|
24
12
|
|
13
|
+
def self.define_feature_availability(feature, version_string)
|
14
|
+
available_version = new(version_string)
|
15
|
+
|
16
|
+
define_singleton_method("#{feature}_available_version") do
|
17
|
+
available_version
|
18
|
+
end
|
19
|
+
|
20
|
+
define_method("#{feature}_available?") do
|
21
|
+
self >= available_version
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
25
|
def initialize(version)
|
26
26
|
@gem_version = if version.is_a?(Gem::Version)
|
27
27
|
version
|
@@ -30,26 +30,6 @@ module Transpec
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def be_truthy_available?
|
34
|
-
@gem_version >= GEM_VERSION_2_99_0_BETA1
|
35
|
-
end
|
36
|
-
|
37
|
-
def yielded_example_available?
|
38
|
-
@gem_version >= GEM_VERSION_2_99_0_BETA1
|
39
|
-
end
|
40
|
-
|
41
|
-
def one_liner_is_expected_available?
|
42
|
-
@gem_version >= GEM_VERSION_2_99_0_BETA2
|
43
|
-
end
|
44
|
-
|
45
|
-
def receive_messages_available?
|
46
|
-
@gem_version >= GEM_VERSION_3_0_0_BETA1
|
47
|
-
end
|
48
|
-
|
49
|
-
def receive_message_chain_available?
|
50
|
-
@gem_version >= GEM_VERSION_3_0_0_BETA2
|
51
|
-
end
|
52
|
-
|
53
33
|
def <=>(other)
|
54
34
|
@gem_version <=> other.gem_version
|
55
35
|
end
|
@@ -57,5 +37,11 @@ module Transpec
|
|
57
37
|
def to_s
|
58
38
|
@gem_version.to_s
|
59
39
|
end
|
40
|
+
|
41
|
+
define_feature_availability :be_truthy, '2.99.0.beta1'
|
42
|
+
define_feature_availability :yielded_example, '2.99.0.beta1'
|
43
|
+
define_feature_availability :one_liner_is_expected, '2.99.0.beta2'
|
44
|
+
define_feature_availability :receive_messages, '3.0.0.beta1'
|
45
|
+
define_feature_availability :receive_message_chain, '3.0.0.beta2'
|
60
46
|
end
|
61
47
|
end
|
@@ -2,17 +2,16 @@
|
|
2
2
|
|
3
3
|
require 'transpec/syntax'
|
4
4
|
require 'transpec/util'
|
5
|
+
require 'ast'
|
5
6
|
|
6
7
|
module Transpec
|
7
8
|
class Syntax
|
8
9
|
class RSpecConfigure < Syntax
|
9
|
-
extend Util
|
10
|
-
|
11
10
|
def self.target_node?(node, runtime_data = nil)
|
12
11
|
return false unless node && node.type == :block
|
13
12
|
send_node = node.children.first
|
14
13
|
receiver_node, method_name, *_ = *send_node
|
15
|
-
const_name(receiver_node) == 'RSpec' && method_name == :configure
|
14
|
+
Util.const_name(receiver_node) == 'RSpec' && method_name == :configure
|
16
15
|
end
|
17
16
|
|
18
17
|
def self.add_framework_configuration(type, config_method_name)
|
@@ -46,7 +46,7 @@ module Transpec
|
|
46
46
|
end
|
47
47
|
|
48
48
|
if proc_literal?(subject_node)
|
49
|
-
|
49
|
+
replace(range_of_subject_method_taking_block, 'expect')
|
50
50
|
else
|
51
51
|
wrap_subject_in_expect!
|
52
52
|
end
|
@@ -61,15 +61,14 @@ module Transpec
|
|
61
61
|
|
62
62
|
private
|
63
63
|
|
64
|
-
def
|
64
|
+
def range_of_subject_method_taking_block
|
65
65
|
send_node = subject_node.children.first
|
66
|
-
|
67
|
-
replace(range_of_subject_method_taking_block, 'expect')
|
66
|
+
send_node.loc.expression
|
68
67
|
end
|
69
68
|
|
70
69
|
def register_record(negative_form_of_to)
|
71
70
|
if proc_literal?(subject_node)
|
72
|
-
original_syntax =
|
71
|
+
original_syntax = "#{range_of_subject_method_taking_block.source} { }.should"
|
73
72
|
converted_syntax = 'expect { }.'
|
74
73
|
else
|
75
74
|
original_syntax = 'obj.should'
|
@@ -10,11 +10,8 @@ require 'transpec/syntax/mixin/any_instance'
|
|
10
10
|
module Transpec
|
11
11
|
class Syntax
|
12
12
|
class ShouldReceive < Syntax
|
13
|
-
include Mixin::Send
|
14
|
-
|
15
|
-
include Mixin::Expectizable
|
16
|
-
include Mixin::AllowNoMessage
|
17
|
-
include Mixin::AnyInstance
|
13
|
+
include Mixin::Send, Mixin::MonkeyPatch, Mixin::Expectizable, Mixin::AllowNoMessage,
|
14
|
+
Mixin::AnyInstance
|
18
15
|
|
19
16
|
alias_method :useless_expectation?, :allow_no_message?
|
20
17
|
|
data/lib/transpec/version.rb
CHANGED
data/spec/transpec/cli_spec.rb
CHANGED
@@ -63,17 +63,32 @@ module Transpec
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
shared_examples 'generates commit message' do
|
67
|
+
it 'generates commit message to .git/COMMIT_EDITMSG' do
|
68
|
+
cli.run(args)
|
69
|
+
File.read('.git/COMMIT_EDITMSG').should start_with('Convert specs')
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
shared_examples 'does not generate commit message' do
|
74
|
+
it 'does not generate commit message' do
|
75
|
+
cli.run(args)
|
76
|
+
File.exist?('.git/COMMIT_EDITMSG').should be_false
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
66
80
|
context 'when git is available' do
|
67
81
|
before { Git.stub(:command_available?).and_return(true) }
|
68
82
|
|
69
83
|
context 'and inside of a repository' do
|
70
|
-
|
84
|
+
include_context 'inside of git repository'
|
71
85
|
|
72
86
|
context 'and the repository is not clean' do
|
73
87
|
before { Git.stub(:clean?).and_return(false) }
|
74
88
|
|
75
89
|
context 'and --force option is not specified' do
|
76
90
|
include_examples 'aborts processing'
|
91
|
+
include_examples 'does not generate commit message'
|
77
92
|
|
78
93
|
it 'warns to the user' do
|
79
94
|
cli.should_receive(:warn) do |arg|
|
@@ -85,32 +100,35 @@ module Transpec
|
|
85
100
|
end
|
86
101
|
|
87
102
|
context 'and --force option is specified' do
|
88
|
-
before
|
89
|
-
args << '--force'
|
90
|
-
# Silence "fatal: Not a git repository (or any of the parent directories): .git"
|
91
|
-
# from Bundler.
|
92
|
-
`git init`
|
93
|
-
end
|
94
|
-
|
103
|
+
before { args << '--force' }
|
95
104
|
include_examples 'rewrites files'
|
105
|
+
include_examples 'generates commit message'
|
96
106
|
end
|
97
107
|
end
|
98
108
|
|
99
109
|
context 'and the repository is clean' do
|
100
110
|
before { Git.stub(:clean?).and_return(true) }
|
111
|
+
|
101
112
|
include_examples 'rewrites files'
|
113
|
+
include_examples 'generates commit message'
|
114
|
+
|
115
|
+
context 'and no conversion is done' do
|
116
|
+
let(:file_content) { '' }
|
117
|
+
include_examples 'does not generate commit message'
|
118
|
+
end
|
102
119
|
end
|
103
120
|
end
|
104
121
|
|
105
122
|
context 'and not inside of a repository' do
|
106
|
-
before { Git.stub(:inside_of_repository?).and_return(false) }
|
107
123
|
include_examples 'rewrites files'
|
124
|
+
include_examples 'does not generate commit message'
|
108
125
|
end
|
109
126
|
end
|
110
127
|
|
111
128
|
context 'when git is not available' do
|
112
129
|
before { Git.stub(:command_available?).and_return(false) }
|
113
130
|
include_examples 'rewrites files'
|
131
|
+
include_examples 'does not generate commit message'
|
114
132
|
end
|
115
133
|
|
116
134
|
context "when the project's RSpec dependency is older than the required version" do
|
@@ -173,28 +191,6 @@ module Transpec
|
|
173
191
|
end
|
174
192
|
end
|
175
193
|
|
176
|
-
context 'when -m/--generate-commit-message option is specified' do
|
177
|
-
include_context 'inside of git repository'
|
178
|
-
|
179
|
-
let(:args) { ['--force', '--generate-commit-message', file_path] }
|
180
|
-
|
181
|
-
context 'and any conversion is done' do
|
182
|
-
it 'writes commit message to .git/COMMIT_EDITMSG' do
|
183
|
-
cli.run(args)
|
184
|
-
File.read('.git/COMMIT_EDITMSG').should start_with('Convert specs')
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
context 'and no conversion is done' do
|
189
|
-
let(:file_content) { '' }
|
190
|
-
|
191
|
-
it 'does not writes commit message' do
|
192
|
-
cli.run(args)
|
193
|
-
File.exist?('.git/COMMIT_EDITMSG').should be_false
|
194
|
-
end
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
194
|
context 'when -c/--rspec-command option is specified' do
|
199
195
|
include_context 'inside of git repository'
|
200
196
|
|
@@ -4,12 +4,14 @@ require 'spec_helper'
|
|
4
4
|
require 'transpec/commit_message'
|
5
5
|
require 'transpec/report'
|
6
6
|
require 'transpec/record'
|
7
|
+
require 'transpec/rspec_version'
|
7
8
|
|
8
9
|
module Transpec
|
9
10
|
describe CommitMessage do
|
10
|
-
subject(:commit_message) { CommitMessage.new(report, cli_args) }
|
11
|
+
subject(:commit_message) { CommitMessage.new(report, rspec_version, cli_args) }
|
11
12
|
let(:report) { Report.new }
|
12
|
-
let(:
|
13
|
+
let(:rspec_version) { RSpecVersion.new('2.99.0.beta1') }
|
14
|
+
let(:cli_args) { ['--force'] }
|
13
15
|
|
14
16
|
before do
|
15
17
|
report.records << Record.new('obj.stub(:message)', 'allow(obj).to receive(:message)')
|
@@ -28,7 +30,7 @@ module Transpec
|
|
28
30
|
|
29
31
|
describe 'first line' do
|
30
32
|
it 'has concise summary' do
|
31
|
-
lines[0].chomp.should == 'Convert specs to
|
33
|
+
lines[0].chomp.should == 'Convert specs to RSpec 2.99.0.beta1 syntax with Transpec'
|
32
34
|
end
|
33
35
|
end
|
34
36
|
|
@@ -45,7 +47,7 @@ module Transpec
|
|
45
47
|
body_lines[0].chomp
|
46
48
|
.should match(/^This conversion is done by Transpec \d+\.\d+\.\d+ with the following command:$/)
|
47
49
|
body_lines[1].chomp
|
48
|
-
.should == ' transpec --force
|
50
|
+
.should == ' transpec --force'
|
49
51
|
end
|
50
52
|
|
51
53
|
it 'has blank line after the preface' do
|
@@ -19,7 +19,6 @@ module Transpec
|
|
19
19
|
[:parenthesize_matcher_arg?, true],
|
20
20
|
[:forced?, false],
|
21
21
|
[:skip_dynamic_analysis?, false],
|
22
|
-
[:generate_commit_message?, false],
|
23
22
|
[:negative_form_of_to, 'not_to'],
|
24
23
|
[:boolean_matcher_type, :conditional],
|
25
24
|
[:form_of_be_falsey, 'be_falsey']
|
@@ -40,23 +40,22 @@ module Transpec
|
|
40
40
|
end
|
41
41
|
|
42
42
|
describe '-m/--generate-commit-message option' do
|
43
|
-
include_context 'isolated environment'
|
44
|
-
|
45
43
|
let(:args) { ['--generate-commit-message'] }
|
46
44
|
|
47
|
-
|
48
|
-
|
45
|
+
before do
|
46
|
+
parser.stub(:warn)
|
47
|
+
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
it 'is deprecated' do
|
50
|
+
parser.should_receive(:warn) do |message|
|
51
|
+
message.should =~ /--generate-commit-message.+deprecated/i
|
53
52
|
end
|
53
|
+
|
54
|
+
parser.parse(args)
|
54
55
|
end
|
55
56
|
|
56
|
-
|
57
|
-
|
58
|
-
-> { parser.parse(args) }.should raise_error(/not in a Git repository/)
|
59
|
-
end
|
57
|
+
it 'does not raise error' do
|
58
|
+
-> { parser.parse(args) }.should_not raise_error
|
60
59
|
end
|
61
60
|
end
|
62
61
|
|
@@ -469,9 +469,9 @@ module Transpec
|
|
469
469
|
rewritten_source.should == expected_source
|
470
470
|
end
|
471
471
|
|
472
|
-
it
|
472
|
+
it "adds record `#{method} { }.should` -> `expect { }.to`" do
|
473
473
|
should_object.expectize!
|
474
|
-
record.original_syntax.should ==
|
474
|
+
record.original_syntax.should == "#{method} { }.should"
|
475
475
|
record.converted_syntax.should == 'expect { }.to'
|
476
476
|
end
|
477
477
|
end
|
data/tasks/lib/transpec_demo.rb
CHANGED
@@ -28,7 +28,7 @@ class TranspecDemo < TranspecTest
|
|
28
28
|
def run_demo(transpec_args = [])
|
29
29
|
in_project_dir do
|
30
30
|
with_clean_bundler_env do
|
31
|
-
sh File.join(Transpec.root, 'bin', 'transpec'), '--force'
|
31
|
+
sh File.join(Transpec.root, 'bin', 'transpec'), '--force'
|
32
32
|
sh 'bundle exec rspec'
|
33
33
|
sh "git checkout --quiet -b #{DEMO_BRANCH}"
|
34
34
|
sh 'git commit --all --file .git/COMMIT_EDITMSG'
|
metadata
CHANGED
@@ -1,195 +1,195 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transpec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Nakayama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rainbow
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.8'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.8'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activesupport
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '4.0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '4.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '2.14'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '2.14'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rake
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '10.1'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '10.1'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: simplecov
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - ~>
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0.7'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - ~>
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0.7'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rubocop
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - ~>
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0.10'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - ~>
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0.10'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: guard-rspec
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - ~>
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '4.0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - ~>
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '4.0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: guard-rubocop
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - ~>
|
157
|
+
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '1.0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - ~>
|
164
|
+
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '1.0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: guard-shell
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - ~>
|
171
|
+
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0.5'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - ~>
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0.5'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: ruby_gntp
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- - ~>
|
185
|
+
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0.3'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - ~>
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0.3'
|
195
195
|
description: Transpec converts your specs to the latest RSpec syntax with static and
|
@@ -201,9 +201,9 @@ executables:
|
|
201
201
|
extensions: []
|
202
202
|
extra_rdoc_files: []
|
203
203
|
files:
|
204
|
-
- .gitignore
|
205
|
-
- .rubocop.yml
|
206
|
-
- .travis.yml
|
204
|
+
- ".gitignore"
|
205
|
+
- ".rubocop.yml"
|
206
|
+
- ".travis.yml"
|
207
207
|
- CHANGELOG.md
|
208
208
|
- Gemfile
|
209
209
|
- Guardfile
|
@@ -310,12 +310,12 @@ require_paths:
|
|
310
310
|
- lib
|
311
311
|
required_ruby_version: !ruby/object:Gem::Requirement
|
312
312
|
requirements:
|
313
|
-
- -
|
313
|
+
- - ">="
|
314
314
|
- !ruby/object:Gem::Version
|
315
315
|
version: '0'
|
316
316
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
|
-
- -
|
318
|
+
- - ">="
|
319
319
|
- !ruby/object:Gem::Version
|
320
320
|
version: '0'
|
321
321
|
requirements: []
|
@@ -361,3 +361,4 @@ test_files:
|
|
361
361
|
- spec/transpec/syntax/should_spec.rb
|
362
362
|
- spec/transpec/util_spec.rb
|
363
363
|
- spec/transpec_spec.rb
|
364
|
+
has_rdoc:
|