transpec 0.0.6 → 0.0.7

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: fae62db4ce110f7f0191e98d48623bb2c5c50719
4
- data.tar.gz: 32f9bea9a00708e08e86e40e7a0a2f1398dbdcfd
3
+ metadata.gz: 1eedcc59f7b98fb3c4c65cba1a0be3165d9a7624
4
+ data.tar.gz: 36621b66f200b3402caa0f31166d85e52f0e4c6c
5
5
  SHA512:
6
- metadata.gz: b9eb3c099c5ee8a52d97d9ee93bff084452c16646cb9d9b617cce5db0d87a97cd72da1999d058445bc0e9b490dfb6d636bd01e287897bca6afc75663251ab52d
7
- data.tar.gz: 75e5fbcd92d00d26edce8194da908bc8cd5d42bcbd2dc03e8d9bc4dd259d89e39d39c4135a2b4bbd6e27b70f1faccc52c77764975f9313d33474c4c413431bee
6
+ metadata.gz: ec7769b9ee175b13949e59e2f1b8c05422212bdf59ec5a4d0a6f9cf9107fa6a352474a2f3b60e895e476b054a90474e86c4cd33704983f360d3e6fdcb7aa826c
7
+ data.tar.gz: 894ca15f361e3393101470d8ea9ac70f4ebf81c46132396e02df028f835e79f91389aea4decab50fa429139ca90c2d4ec558720c1cf5ff67cb8fdcc1a75cdb24
data/.rubocop.yml CHANGED
@@ -12,6 +12,32 @@ MethodLength:
12
12
  WordArray:
13
13
  Enabled: false
14
14
 
15
+ AlignHash:
16
+ # Alignment of entries using hash rocket as separator. Valid values are:
17
+ #
18
+ # key - left alignment of keys
19
+ # 'a' => 2
20
+ # 'bb' => 3
21
+ # separator - alignment of hash rockets, keys are right aligned
22
+ # 'a' => 2
23
+ # 'bb' => 3
24
+ # table - left alignment of keys, hash rockets, and values
25
+ # 'a' => 2
26
+ # 'bb' => 3
27
+ EnforcedHashRocketStyle: table
28
+ # Alignment of entries using colon as separator. Valid values are:
29
+ #
30
+ # key - left alignment of keys
31
+ # a: 0
32
+ # bb: 1
33
+ # separator - alignment of colons, keys are right aligned
34
+ # a: 0
35
+ # bb: 1
36
+ # table - left alignment of keys and values
37
+ # a: 0
38
+ # bb: 1
39
+ EnforcedColonStyle: separator
40
+
15
41
  # TODO
16
42
  Documentation:
17
43
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Master
4
4
 
5
+ ## v0.0.7
6
+
7
+ * Avoid confusing `Typhoeus.stub` with RSpec's `stub` ([#4](https://github.com/yujinakayama/transpec/issues/4))
8
+
5
9
  ## v0.0.6
6
10
 
7
11
  * Fix a bug where `SomeClass.any_instance.should_receive(:message).any_number_of_times` was converted into `expect_any_instance_of(SomeClass).to receive(:message)` unintentionally (now it's converted into `allow_any_instance_of(SomeClass).to receive(:message)`)
data/Rakefile CHANGED
@@ -44,8 +44,8 @@ Rake::Task[:release].enhance([:abort_unless_latest_readme_is_committed])
44
44
 
45
45
  namespace :test do
46
46
  projects = [
47
- [:twitter, 'https://github.com/sferik/twitter.git', 'v4.1.0'],
48
- [:guard, 'https://github.com/guard/guard.git', 'v1.8.1', '--without development']
47
+ [:twitter, 'https://github.com/sferik/twitter.git', 'v4.1.0'],
48
+ [:guard, 'https://github.com/yujinakayama/guard.git', 'transpec', %w(--without development)]
49
49
  ]
50
50
 
51
51
  desc 'Test Transpec on all other projects'
@@ -54,9 +54,12 @@ namespace :test do
54
54
  projects.each do |name, url, ref, bundler_args|
55
55
  desc "Test Transpec on #{name.to_s.capitalize} project"
56
56
  task name do
57
- tmpdir = 'tmp'
57
+ tmpdir = File.join('tmp', 'projects')
58
58
 
59
- Dir.mkdir(tmpdir) unless Dir.exist?(tmpdir)
59
+ unless Dir.exist?(tmpdir)
60
+ require 'fileutils'
61
+ FileUtils.mkdir_p(tmpdir)
62
+ end
60
63
 
61
64
  Dir.chdir(tmpdir) do
62
65
  test_on_project(name.to_s.capitalize, url, ref, bundler_args)
@@ -71,11 +74,15 @@ namespace :test do
71
74
 
72
75
  repo_dir = prepare_git_repo(url, ref)
73
76
 
77
+ bundler_args ||= []
78
+ # On Travis CI, reuse system gems to speed up build.
79
+ bundler_args.concat(%w(--path vendor/bundle)) unless ENV['TRAVIS']
80
+
74
81
  Dir.chdir(repo_dir) do
75
82
  with_clean_bundler_env do
76
- sh "bundle install #{bundler_args}"
77
- sh File.join(Transpec.root, 'bin', 'transpec')
78
- sh 'rspec'
83
+ sh 'bundle', 'install', *bundler_args
84
+ sh File.join(Transpec.root, 'bin', 'transpec'), '--force'
85
+ sh 'bundle exec rspec'
79
86
  end
80
87
  end
81
88
  end
data/lib/transpec/cli.rb CHANGED
@@ -131,7 +131,7 @@ module Transpec
131
131
  file_paths.concat(ruby_files_in_directory(path))
132
132
  elsif File.file?(path)
133
133
  file_paths << path
134
- elsif !File.exists?(path) # rubocop:disable FavorUnlessOverNegatedIf
134
+ elsif !File.exists?(path)
135
135
  fail ArgumentError, "No such file or directory #{path.inspect}"
136
136
  end
137
137
  end
@@ -11,6 +11,8 @@ module Transpec
11
11
  class MethodStub < Syntax
12
12
  include AnyInstanceable, AnyNumberOfTimesable, Util
13
13
 
14
+ RECEIVER_CLASS_WHITELIST = ['Typhoeus']
15
+
14
16
  def allowize!
15
17
  # There's no way of unstubbing in #allow syntax.
16
18
  return unless [:stub, :stub!].include?(method_name)
@@ -50,7 +52,9 @@ module Transpec
50
52
  private
51
53
 
52
54
  def self.target_receiver_node?(node)
53
- !node.nil?
55
+ return false if node.nil?
56
+ const_name = Util.const_name(node)
57
+ !RECEIVER_CLASS_WHITELIST.include?(const_name)
54
58
  end
55
59
 
56
60
  def self.target_method_names
@@ -5,7 +5,7 @@ module Transpec
5
5
  module Version
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 6
8
+ PATCH = 7
9
9
 
10
10
  def self.to_s
11
11
  [MAJOR, MINOR, PATCH].join('.')
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ module ASTHelper
4
+ def scan_node(node, options = {}, &block)
5
+ yield node if options[:include_origin_node]
6
+
7
+ node.children.each do |child|
8
+ next unless child.is_a?(Parser::AST::Node)
9
+ yield child
10
+ scan_node(child, &block)
11
+ end
12
+
13
+ nil
14
+ end
15
+ end
@@ -23,6 +23,46 @@ module Transpec
23
23
 
24
24
  let(:in_example_group_context?) { true }
25
25
 
26
+ describe '.target_node?' do
27
+ include ASTHelper
28
+
29
+ let(:send_node) do
30
+ scan_node(ast, include_origin_node: true) do |node|
31
+ next unless node.type == :send
32
+ method_name = node.children[1]
33
+ next unless method_name == :stub
34
+ return node
35
+ end
36
+ fail 'No #stub node is found!'
37
+ end
38
+
39
+ context 'when #stub node is passed' do
40
+ let(:source) do
41
+ <<-END
42
+ it 'responds to #foo' do
43
+ subject.stub(:foo)
44
+ end
45
+ END
46
+ end
47
+
48
+ it 'returns true' do
49
+ MethodStub.target_node?(send_node).should be_true
50
+ end
51
+ end
52
+
53
+ context 'when #stub node with Typhoeus receiver is passed' do
54
+ let(:source) do
55
+ <<-END
56
+ ::Typhoeus.stub(url, :method => method).and_return(response)
57
+ END
58
+ end
59
+
60
+ it 'returns false' do
61
+ MethodStub.target_node?(send_node).should be_false
62
+ end
63
+ end
64
+ end
65
+
26
66
  describe '#method_name' do
27
67
  let(:source) do
28
68
  <<-END
metadata CHANGED
@@ -1,153 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transpec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
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-09-03 00:00:00.000000000 Z
11
+ date: 2013-09-22 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.0.pre1
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.0.pre1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.14'
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: '2.14'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.3'
48
48
  type: :development
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.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.1'
62
62
  type: :development
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: '10.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.7'
76
76
  type: :development
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: '0.7'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.10'
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: '0.10'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: guard-rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '3.0'
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: '3.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: guard-rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0.2'
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.2'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: guard-shell
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0.5'
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.5'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: ruby_gntp
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0.3'
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: '0.3'
153
153
  description: Transpec automatically converts your specs into latest RSpec syntax with
@@ -159,9 +159,9 @@ executables:
159
159
  extensions: []
160
160
  extra_rdoc_files: []
161
161
  files:
162
- - .gitignore
163
- - .rubocop.yml
164
- - .travis.yml
162
+ - ".gitignore"
163
+ - ".rubocop.yml"
164
+ - ".travis.yml"
165
165
  - CHANGELOG.md
166
166
  - Gemfile
167
167
  - Guardfile
@@ -194,6 +194,7 @@ files:
194
194
  - spec/.rubocop.yml
195
195
  - spec/spec_helper.rb
196
196
  - spec/spec_spec.rb
197
+ - spec/support/ast_helper.rb
197
198
  - spec/support/file_helper.rb
198
199
  - spec/support/shared_context.rb
199
200
  - spec/transpec/ast/scanner_spec.rb
@@ -221,12 +222,12 @@ require_paths:
221
222
  - lib
222
223
  required_ruby_version: !ruby/object:Gem::Requirement
223
224
  requirements:
224
- - - '>='
225
+ - - ">="
225
226
  - !ruby/object:Gem::Version
226
227
  version: '0'
227
228
  required_rubygems_version: !ruby/object:Gem::Requirement
228
229
  requirements:
229
- - - '>='
230
+ - - ">="
230
231
  - !ruby/object:Gem::Version
231
232
  version: '0'
232
233
  requirements: []
@@ -239,6 +240,7 @@ test_files:
239
240
  - spec/.rubocop.yml
240
241
  - spec/spec_helper.rb
241
242
  - spec/spec_spec.rb
243
+ - spec/support/ast_helper.rb
242
244
  - spec/support/file_helper.rb
243
245
  - spec/support/shared_context.rb
244
246
  - spec/transpec/ast/scanner_spec.rb