transpec 1.9.2 → 1.9.3

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: a34ff8e04af60263124c8b388b44b5784ceba70f
4
- data.tar.gz: a00f6ffbf41aab7e020aedd0487837279557e039
3
+ metadata.gz: 65c3e2a67d42f7fc8b2ca50e0853242a6057bfcb
4
+ data.tar.gz: facb20a69acc7f105f48b47524e2b6486b68c1f1
5
5
  SHA512:
6
- metadata.gz: 8258e12de1f9553ac0a89f32e05c061c529dbda6d7e7877b46356359f7bdd6899ee2eebe527bbcce7b4f72a8031b91ace460b06fc8662215f711930277f05401
7
- data.tar.gz: aeafa19c49cf9fa8dfe031c13118681dff4351fa56a1279117f878af27a033ff8620b2ec316ca49cf03caee2396ce326c719d9275f156927558139278bb6f700
6
+ metadata.gz: 7dc1164f70806bad460e845710010a9365751e02ccc106034f71d25a0d979efe8e283b0837be635385558317a988f5c71ab72c78216a3fae1ddfc6b0d93d18f2
7
+ data.tar.gz: 05d9de7fa3d15cb62da0e91cfa85c71f6ad615c70452c7ddee00aa0c9cb3925a3dfe87f2b383d210adb26661ffb8134190821ddbc3e6706ae5686a8997a6c586
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Development
4
4
 
5
+ ## v1.9.3
6
+
7
+ * Handle `variable.any_instance` ([#46](https://github.com/yujinakayama/transpec/issues/46))
8
+ * Fix a bug where the DSL `example` (an alias of `it`) was confused with current example object (e.g. `example 'it does something' do ... end` was converted to `example 'it does something' do |example| ... end`)
9
+
5
10
  ## v1.9.2
6
11
 
7
12
  * Fix a bug where `expect(method_returns_collection :some_arg).to have(2).items` was converted to `expect(method_returns_collection :some_arg.size).to eq(2)` ([#43](https://github.com/yujinakayama/transpec/issues/43))
@@ -12,6 +12,14 @@ module Transpec
12
12
 
13
13
  METHODS_YIELD_EXAMPLE = (EXAMPLE_METHODS + HOOK_METHODS + HELPER_METHODS).freeze
14
14
 
15
+ def self.target_node?(node, runtime_data = nil)
16
+ receiver_node, method_name, *_ = *node
17
+ return false if receiver_node
18
+ return false unless [:example, :running_example].include?(method_name)
19
+ return false if Util.block_node_taken_by_method(node)
20
+ check_target_node_dynamically(node, runtime_data)
21
+ end
22
+
15
23
  def self.target_method?(receiver_node, method_name)
16
24
  receiver_node.nil? && [:example, :running_example].include?(method_name)
17
25
  end
@@ -55,12 +55,7 @@ module Transpec
55
55
  receiver_node, method_name = *subject_node
56
56
  return nil unless receiver_node
57
57
  return nil unless method_name == :any_instance
58
-
59
- if receiver_node.const_type? || receiver_node == s(:send, nil, :described_class)
60
- receiver_node
61
- else
62
- nil
63
- end
58
+ receiver_node
64
59
  end
65
60
  end
66
61
  end
@@ -27,7 +27,7 @@ module Transpec
27
27
  source_location = source_location(node, runtime_data)
28
28
  return true unless source_location
29
29
  file_path = source_location.first
30
- !file_path.match(%r{/gems/rspec\-[^/]+/lib/rspec/}).nil?
30
+ !file_path.match(%r{/rspec\-[^/]+/lib/rspec/}).nil?
31
31
  end
32
32
 
33
33
  def source_location(node, runtime_data)
@@ -5,7 +5,7 @@ module Transpec
5
5
  module Version
6
6
  MAJOR = 1
7
7
  MINOR = 9
8
- PATCH = 2
8
+ PATCH = 3
9
9
 
10
10
  def self.to_s
11
11
  [MAJOR, MINOR, PATCH].join('.')
@@ -197,6 +197,22 @@ module Transpec
197
197
  end
198
198
  end
199
199
 
200
+ context "when it is `example 'it does something' do do_something end` form", :no_auto_convert do
201
+ let(:source) do
202
+ <<-END
203
+ describe 'example' do
204
+ example 'it does something' do
205
+ do_something
206
+ end
207
+ end
208
+ END
209
+ end
210
+
211
+ it 'does nothing' do
212
+ rewritten_source.should == source
213
+ end
214
+ end
215
+
200
216
  context 'when it is `def helper_method example; end` form' do
201
217
  let(:source) do
202
218
  <<-END
@@ -508,7 +508,45 @@ module Transpec
508
508
  end
509
509
  end
510
510
 
511
- context 'when it is `variable.any_instance.should_receive(:method)` form ' \
511
+ context 'when it is `variable.any_instance.should_receive(:method)` form' do
512
+ let(:source) do
513
+ <<-END
514
+ describe 'example' do
515
+ it 'receives #foo' do
516
+ variable = String
517
+ variable.any_instance.should_receive(:foo)
518
+ 'string'.foo
519
+ end
520
+ end
521
+ END
522
+ end
523
+
524
+ let(:expected_source) do
525
+ <<-END
526
+ describe 'example' do
527
+ it 'receives #foo' do
528
+ variable = String
529
+ expect_any_instance_of(variable).to receive(:foo)
530
+ 'string'.foo
531
+ end
532
+ end
533
+ END
534
+ end
535
+
536
+ it 'converts into `expect_any_instance_of(variable).to receive(:method)` form' do
537
+ should_receive_object.expectize!
538
+ rewritten_source.should == expected_source
539
+ end
540
+
541
+ it 'adds record `Klass.any_instance.should_receive(:message)` ' \
542
+ '-> `expect_any_instance_of(Klass).to receive(:message)`' do
543
+ should_receive_object.expectize!
544
+ record.original_syntax.should == 'Klass.any_instance.should_receive(:message)'
545
+ record.converted_syntax.should == 'expect_any_instance_of(Klass).to receive(:message)'
546
+ end
547
+ end
548
+
549
+ context 'when it is `variable.should_receive(:method)` form ' \
512
550
  'and the variable is an AnyInstance::Recorder' do
513
551
  context 'with runtime information' do
514
552
  include_context 'dynamic analysis objects'
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: 1.9.2
4
+ version: 1.9.3
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-02-22 00:00:00.000000000 Z
11
+ date: 2014-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser