transpec 2.3.7 → 2.3.8

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: 6ce681149f6777fb46a239bcee88f92b42523600
4
- data.tar.gz: 1536c4975b64ec6168e53ec1dffd4b315abe329e
3
+ metadata.gz: cb9406724bb6b0b2dd4a820087ce298134d0abbf
4
+ data.tar.gz: c9cd123d3c4a95f6f74cb536b8f0e614362defb9
5
5
  SHA512:
6
- metadata.gz: b5d797314a4304bf65be434947f3408cdeccb68379ce7696539854788b4f92cede514bed025c5d8f1876302b5535a2987186d136ca3c357f923f064c2bdd24a6
7
- data.tar.gz: cd41e8284cb963cfd971fb64b05d5ca6988b406da92836ab6719ee675c3b955a47843edcb7a45b83a0399896218b90cbdb3d21ddb5a20169795f3c2de30d4b7d
6
+ metadata.gz: 067c988d340e8d447ec75fafd9697d465651e7731c8b43fca3b76559139c16b0ee867bc57f3a06344df5127aff1af51e2ad8b3c5531d162729e705ddb2c00e50
7
+ data.tar.gz: 5b96068adbf78f05d7ca66faa64b6377248b51733114f916e2a67e92b9c47b3537d1f368de2dd369f7427fa4ab979509ac92fcb469972ef432246bbf9b8d39a2
data/.rubocop.yml CHANGED
@@ -18,6 +18,9 @@ CyclomaticComplexity:
18
18
  PerceivedComplexity:
19
19
  Max: 10
20
20
 
21
+ AbcSize:
22
+ Max: 44
23
+
21
24
  WordArray:
22
25
  Enabled: false
23
26
 
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Development
4
4
 
5
+ ## v2.3.8
6
+
7
+ * Fix an error on processing one-liner `should` that is not directly encloses in an example block. ([#93](https://github.com/yujinakayama/transpec/issues/93))
8
+
5
9
  ## v2.3.7
6
10
 
7
11
  * Fix a bug where nested example groups in `RSpec.describe` are wrongly converted to non-monkey-patch form when dynamic analysis is skipped. ([#89](https://github.com/yujinakayama/transpec/issues/89))
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  [![Dependency Status](http://img.shields.io/gemnasium/yujinakayama/transpec.svg)](https://gemnasium.com/yujinakayama/transpec)
3
3
  [![Build Status](https://travis-ci.org/yujinakayama/transpec.svg?branch=master)](https://travis-ci.org/yujinakayama/transpec)
4
4
  [![Coverage Status](http://img.shields.io/coveralls/yujinakayama/transpec/master.svg)](https://coveralls.io/r/yujinakayama/transpec)
5
- [![Code Climate](http://img.shields.io/codeclimate/github/yujinakayama/transpec.svg)](https://codeclimate.com/github/yujinakayama/transpec)
5
+ [![Code Climate](https://codeclimate.com/github/yujinakayama/transpec/badges/gpa.svg)](https://codeclimate.com/github/yujinakayama/transpec)
6
6
 
7
7
  # Transpec
8
8
 
@@ -128,21 +128,6 @@ Then, run `transpec` in the project root directory:
128
128
  ```bash
129
129
  $ cd some-project
130
130
  $ transpec
131
- Copying the project for dynamic analysis...
132
- Running dynamic analysis with command "bundle exec rspec"...
133
- ...............................................................................
134
- ...................
135
-
136
- Finished in 13.07 seconds
137
- 100 examples, 0 failures
138
-
139
- Gathering the spec suite data...
140
-
141
- Converting spec/spec_helper.rb
142
- Converting spec/support/cache_helper.rb
143
- Converting spec/support/file_helper.rb
144
- Converting spec/support/shared_context.rb
145
- Converting spec/transpec/ast/node_spec.rb
146
131
  ```
147
132
 
148
133
  This will run the specs, convert them, and overwrite all spec files in the `spec` directory.
data/README.md.erb CHANGED
@@ -2,7 +2,7 @@
2
2
  [![Dependency Status](http://img.shields.io/gemnasium/yujinakayama/transpec.svg)](https://gemnasium.com/yujinakayama/transpec)
3
3
  [![Build Status](https://travis-ci.org/yujinakayama/transpec.svg?branch=master)](https://travis-ci.org/yujinakayama/transpec)
4
4
  [![Coverage Status](http://img.shields.io/coveralls/yujinakayama/transpec/master.svg)](https://coveralls.io/r/yujinakayama/transpec)
5
- [![Code Climate](http://img.shields.io/codeclimate/github/yujinakayama/transpec.svg)](https://codeclimate.com/github/yujinakayama/transpec)
5
+ [![Code Climate](https://codeclimate.com/github/yujinakayama/transpec/badges/gpa.svg)](https://codeclimate.com/github/yujinakayama/transpec)
6
6
 
7
7
  # Transpec
8
8
 
@@ -102,21 +102,6 @@ Then, run `transpec` in the project root directory:
102
102
  ```bash
103
103
  $ cd some-project
104
104
  $ transpec
105
- Copying the project for dynamic analysis...
106
- Running dynamic analysis with command "bundle exec rspec"...
107
- ...............................................................................
108
- ...................
109
-
110
- Finished in 13.07 seconds
111
- 100 examples, 0 failures
112
-
113
- Gathering the spec suite data...
114
-
115
- Converting spec/spec_helper.rb
116
- Converting spec/support/cache_helper.rb
117
- Converting spec/support/file_helper.rb
118
- Converting spec/support/shared_context.rb
119
- Converting spec/transpec/ast/node_spec.rb
120
105
  ```
121
106
 
122
107
  This will run the specs, convert them, and overwrite all spec files in the `spec` directory.
@@ -102,7 +102,7 @@ module Transpec
102
102
  def process_operator(operator)
103
103
  return unless config.convert_should?
104
104
  return if operator.expectation.is_a?(Syntax::OnelinerShould) &&
105
- !rspec_version.oneliner_is_expected_available?
105
+ !rspec_version.oneliner_is_expected_available?
106
106
  operator.convert_operator!(config.parenthesize_matcher_arg?)
107
107
  end
108
108
 
@@ -204,7 +204,7 @@ module Transpec
204
204
 
205
205
  def highlight_text(text)
206
206
  text.gsub(/`.+?`/) { |code| code.gsub('`', '').underline }
207
- .gsub(/\*.+?\*/) { |code| code.gsub('*', '').bright }
207
+ .gsub(/\*.+?\*/) { |code| code.gsub('*', '').bright }
208
208
  end
209
209
 
210
210
  def convert_deprecated_options(raw_args)
@@ -111,6 +111,8 @@ module Transpec
111
111
  fail 'This one-liner #should does not have #have matcher!'
112
112
  end
113
113
 
114
+ return unless example
115
+
114
116
  unless example.description?
115
117
  example.insert_description!(build_description(have_matcher.size_source))
116
118
  end
@@ -144,9 +146,9 @@ module Transpec
144
146
  param_names :should, :have, :negative_form_of_to
145
147
 
146
148
  def old_syntax
147
- syntax = should.example.description? ? "it '...' do" : 'it {'
149
+ syntax = had_description? ? "it '...' do" : 'it {'
148
150
  syntax << " #{should.method_name} #{have.method_name}(n).#{old_items} "
149
- syntax << (should.example.description? ? 'end' : '}')
151
+ syntax << (had_description? ? 'end' : '}')
150
152
  end
151
153
 
152
154
  def new_syntax
@@ -155,14 +157,19 @@ module Transpec
155
157
  syntax << new_expectation
156
158
  syntax << ' '
157
159
  syntax << source_builder.replacement_matcher_source
158
- syntax << ' end'
160
+ syntax << ' '
161
+ syntax << (has_description? ? 'end' : '}')
159
162
  end
160
163
 
161
164
  def new_description
162
- if should.example.description?
163
- "it '...' do"
165
+ if has_description?
166
+ if had_description?
167
+ "it '...' do"
168
+ else
169
+ "it '#{should.build_description('n')}' do"
170
+ end
164
171
  else
165
- "it '#{should.build_description('n')}' do"
172
+ 'it {'
166
173
  end
167
174
  end
168
175
 
@@ -178,6 +185,15 @@ module Transpec
178
185
  def new_subject
179
186
  build_new_subject('subject')
180
187
  end
188
+
189
+ def had_description?
190
+ return false unless should.example
191
+ should.example.description?
192
+ end
193
+
194
+ def has_description? # rubocop:disable PredicateName
195
+ !should.example.nil?
196
+ end
181
197
  end
182
198
  end
183
199
  end
@@ -5,7 +5,7 @@ module Transpec
5
5
  module Version
6
6
  MAJOR = 2
7
7
  MINOR = 3
8
- PATCH = 7
8
+ PATCH = 8
9
9
 
10
10
  def self.to_s
11
11
  [MAJOR, MINOR, PATCH].join('.')
@@ -586,6 +586,42 @@ module Transpec
586
586
  record.new_syntax.should == "it 'does not have n items' do expect(subject.size).not_to eq(n) end"
587
587
  end
588
588
  end
589
+
590
+ context 'when the oneliner #should is not directly enclosed in an example block' do
591
+ let(:source) do
592
+ <<-END
593
+ describe 'example' do
594
+ def some_method
595
+ should have(2).items
596
+ end
597
+
598
+ it { some_method }
599
+ end
600
+ END
601
+ end
602
+
603
+ let(:expected_source) do
604
+ <<-END
605
+ describe 'example' do
606
+ def some_method
607
+ expect(subject.size).to eq(2)
608
+ end
609
+
610
+ it { some_method }
611
+ end
612
+ END
613
+ end
614
+
615
+ it 'does not insert example description' do
616
+ rewritten_source.should == expected_source
617
+ end
618
+
619
+ it 'adds record ' \
620
+ '`it { should have(n).items }` -> `it { expect(subject.size).to eq(n) }`' do
621
+ record.old_syntax.should == 'it { should have(n).items }'
622
+ record.new_syntax.should == 'it { expect(subject.size).to eq(n) }'
623
+ end
624
+ end
589
625
  end
590
626
  end
591
627
  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.7
4
+ version: 2.3.8
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-08-28 00:00:00.000000000 Z
11
+ date: 2014-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -420,7 +420,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
420
420
  version: '0'
421
421
  requirements: []
422
422
  rubyforge_project:
423
- rubygems_version: 2.3.0
423
+ rubygems_version: 2.4.2
424
424
  signing_key:
425
425
  specification_version: 4
426
426
  summary: The RSpec syntax converter