transpec 2.3.7 → 2.3.8

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