transpec 2.3.8 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -0
  3. data/CHANGELOG.md +8 -1
  4. data/Gemfile +0 -2
  5. data/Guardfile +2 -2
  6. data/README.md +16 -16
  7. data/README.md.erb +9 -9
  8. data/lib/transpec/cli.rb +12 -13
  9. data/lib/transpec/config.rb +1 -1
  10. data/lib/transpec/converter.rb +11 -7
  11. data/lib/transpec/dynamic_analyzer.rb +2 -2
  12. data/lib/transpec/git.rb +5 -4
  13. data/lib/transpec/option_parser.rb +8 -8
  14. data/lib/transpec/processed_source.rb +4 -7
  15. data/lib/transpec/project.rb +18 -5
  16. data/lib/transpec/spec_suite.rb +9 -6
  17. data/lib/transpec/syntax.rb +13 -5
  18. data/lib/transpec/syntax/method_stub.rb +1 -1
  19. data/lib/transpec/syntax/mixin/matcher_owner.rb +3 -1
  20. data/lib/transpec/syntax/mixin/owned_matcher.rb +4 -2
  21. data/lib/transpec/syntax/mixin/rspec_rails.rb +1 -1
  22. data/lib/transpec/syntax/oneliner_should.rb +1 -1
  23. data/lib/transpec/syntax/operator.rb +4 -2
  24. data/lib/transpec/syntax/rspec_configure.rb +1 -1
  25. data/lib/transpec/version.rb +3 -3
  26. data/spec/spec_helper.rb +1 -4
  27. data/spec/support/shared_context.rb +6 -1
  28. data/spec/transpec/config_spec.rb +1 -1
  29. data/spec/transpec/converter_spec.rb +10 -5
  30. data/spec/transpec/dynamic_analyzer_spec.rb +6 -6
  31. data/spec/transpec/git_spec.rb +22 -33
  32. data/spec/transpec/option_parser_spec.rb +4 -4
  33. data/spec/transpec/project_spec.rb +118 -7
  34. data/spec/transpec/spec_suite_spec.rb +4 -3
  35. data/spec/transpec/syntax/current_example_spec.rb +2 -2
  36. data/spec/transpec/syntax/double_spec.rb +1 -1
  37. data/spec/transpec/syntax/example_group_spec.rb +309 -164
  38. data/spec/transpec/syntax/example_spec.rb +1 -1
  39. data/spec/transpec/syntax/have_spec.rb +1 -1
  40. data/spec/transpec/syntax/its_spec.rb +1 -1
  41. data/spec/transpec/syntax/method_stub_spec.rb +7 -10
  42. data/spec/transpec/syntax/oneliner_should_spec.rb +1 -1
  43. data/spec/transpec/syntax/pending_spec.rb +1 -1
  44. data/spec/transpec/syntax/rspec_configure_spec.rb +66 -57
  45. data/tasks/readme.rake +12 -3
  46. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb9406724bb6b0b2dd4a820087ce298134d0abbf
4
- data.tar.gz: c9cd123d3c4a95f6f74cb536b8f0e614362defb9
3
+ metadata.gz: fe2492f7a3b324bdfb3f2facd8a1ffb9369b6228
4
+ data.tar.gz: f710841766c727037a9adb01c857f4a365c39a73
5
5
  SHA512:
6
- metadata.gz: 067c988d340e8d447ec75fafd9697d465651e7731c8b43fca3b76559139c16b0ee867bc57f3a06344df5127aff1af51e2ad8b3c5531d162729e705ddb2c00e50
7
- data.tar.gz: 5b96068adbf78f05d7ca66faa64b6377248b51733114f916e2a67e92b9c47b3537d1f368de2dd369f7427fa4ab979509ac92fcb469972ef432246bbf9b8d39a2
6
+ metadata.gz: 35e7f4ef63186b8203c900cffe147e7dc0edf2686c7c2621055f72690c8f1ac8363128c869900942ef8901dcc1410db8b74d51068a1dfed6ae59f04e6ec2030b
7
+ data.tar.gz: c8077f07f56bee2f1828c8b7cc44b0c3c3239ae5a84a271c8e9244a8c8a5877a593d0bf211c07dd559c7f2062273735743b89c954f08174e13f8e9980ecb228d
data/.rubocop.yml CHANGED
@@ -1,6 +1,7 @@
1
1
 
2
2
  AllCops:
3
3
  Include:
4
+ - 'Guardfile'
4
5
  - '**/*.rake'
5
6
  Exclude:
6
7
  - 'tmp/**/*'
@@ -12,6 +13,9 @@ LineLength:
12
13
  MethodLength:
13
14
  Max: 17
14
15
 
16
+ ParameterLists:
17
+ Max: 6
18
+
15
19
  CyclomaticComplexity:
16
20
  Max: 8
17
21
 
@@ -24,6 +28,13 @@ AbcSize:
24
28
  WordArray:
25
29
  Enabled: false
26
30
 
31
+ RegexpLiteral:
32
+ Exclude:
33
+ - 'Guardfile'
34
+
35
+ EmptyElse:
36
+ Enabled: false
37
+
27
38
  AlignHash:
28
39
  # Alignment of entries using hash rocket as separator. Valid values are:
29
40
  #
data/CHANGELOG.md CHANGED
@@ -2,9 +2,16 @@
2
2
 
3
3
  ## Development
4
4
 
5
+ ## v3.0.0
6
+
7
+ * Check whether rspec-rails is used in the target project via `Gemfile.lock` when `-s/--skip-dynamic-analysis` option is specified. ([#88](https://github.com/yujinakayama/transpec/issues/88))
8
+ * Now by default the addition of `config.infer_spec_type_from_file_location!` is enabled and the addition of explicit `:type` metadata to each example group is disabled in a project using `rspec-rails` (the former behavior with `-t/--no-explicit-spec-type`).
9
+ * Remove `-t/--no-explicit-spec-type` and add `-e/--explicit-spec-type` option.
10
+ * Handle separated git-dir repository on generation of the commit message. ([#94](https://github.com/yujinakayama/transpec/issues/94))
11
+
5
12
  ## v2.3.8
6
13
 
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))
14
+ * Fix an error on processing one-liner `should` that is not directly enclosed in an example block. ([#93](https://github.com/yujinakayama/transpec/issues/93))
8
15
 
9
16
  ## v2.3.7
10
17
 
data/Gemfile CHANGED
@@ -4,6 +4,4 @@ gemspec
4
4
 
5
5
  group :test do
6
6
  gem 'coveralls', '~> 0.6'
7
- gem 'simplecov-rcov', '~> 0.2'
8
- gem 'ci_reporter', '~> 1.8'
9
7
  end
data/Guardfile CHANGED
@@ -7,8 +7,8 @@ group :red_green_refactor, halt_on_fail: true do
7
7
  guard :rspec, cmd: 'bundle exec rspec --format Fuubar' do
8
8
  watch(%r{^spec/.+_spec\.rb$})
9
9
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
10
- watch('spec/spec_helper.rb') { "spec" }
11
- watch(%r{^spec/support/.+\.rb$}) { "spec" }
10
+ watch('spec/spec_helper.rb') { 'spec' }
11
+ watch(%r{^spec/support/.+\.rb$}) { 'spec' }
12
12
  end
13
13
 
14
14
  guard :rubocop, all_on_start: false, cli: '--format fuubar' do
data/README.md CHANGED
@@ -306,6 +306,12 @@ $ transpec --boolean-matcher true,false
306
306
 
307
307
  See [Supported Conversions - Boolean matchers](#boolean-matchers) for more details.
308
308
 
309
+ ### `-e/--explicit-spec-type`
310
+
311
+ Add explicit spec `:type` metadata to example groups in a project using rspec-rails.
312
+
313
+ See [Supported Conversions - Implicit spec types in rspec-rails](#implicit-spec-types-in-rspec-rails) for more details.
314
+
309
315
  ### `-a/--no-yield-any-instance`
310
316
 
311
317
  Suppress yielding receiver instances to `any_instance` implementation blocks as the first block argument.
@@ -317,12 +323,6 @@ Note that this is not same as `--keep deprecated` since this configures `yield_r
317
323
 
318
324
  See [Supported Conversions - `any_instance` implementation blocks](#any_instance-implementation-blocks) for more details.
319
325
 
320
- ### `-t/--no-explicit-spec-type`
321
-
322
- Suppress adding explicit spec `:type` metadata to example groups in a project using rspec-rails.
323
-
324
- See [Supported Conversions - Implicit spec types in rspec-rails](#implicit-spec-types-in-rspec-rails) for more details.
325
-
326
326
  ### `-p/--no-parens-matcher-arg`
327
327
 
328
328
  Suppress parenthesizing arguments of matchers when converting
@@ -1270,16 +1270,6 @@ end
1270
1270
 
1271
1271
  Will be converted to:
1272
1272
 
1273
- ```ruby
1274
- RSpec.configure do |rspec|
1275
- end
1276
-
1277
- describe SomeModel, :type => :model do
1278
- end
1279
- ```
1280
-
1281
- Or with `--no-explicit-spec-type` option they will be converted to:
1282
-
1283
1273
  ```ruby
1284
1274
  RSpec.configure do |rspec|
1285
1275
  # rspec-rails 3 will no longer automatically infer an example group's spec type
@@ -1298,6 +1288,16 @@ describe SomeModel do
1298
1288
  end
1299
1289
  ```
1300
1290
 
1291
+ Or with `--explicit-spec-type` option they will be converted to:
1292
+
1293
+ ```ruby
1294
+ RSpec.configure do |rspec|
1295
+ end
1296
+
1297
+ describe SomeModel, :type => :model do
1298
+ end
1299
+ ```
1300
+
1301
1301
  * This conversion can be disabled by: `--keep deprecated`
1302
1302
  * Deprecation: deprecated since RSpec 2.99, removed in RSpec 3.0
1303
1303
  * See also: [Consider making example group mixins more explicit · rspec/rspec-rails](https://github.com/rspec/rspec-rails/issues/662)
data/README.md.erb CHANGED
@@ -294,6 +294,12 @@ $ transpec --boolean-matcher true,false
294
294
 
295
295
  See [Supported Conversions - Boolean matchers](#boolean-matchers) for more details.
296
296
 
297
+ ### `-e/--explicit-spec-type`
298
+
299
+ Add explicit spec `:type` metadata to example groups in a project using rspec-rails.
300
+
301
+ See [Supported Conversions - Implicit spec types in rspec-rails](#implicit-spec-types-in-rspec-rails) for more details.
302
+
297
303
  ### `-a/--no-yield-any-instance`
298
304
 
299
305
  Suppress yielding receiver instances to `any_instance` implementation blocks as the first block argument.
@@ -305,12 +311,6 @@ Note that this is not same as `--keep deprecated` since this configures `yield_r
305
311
 
306
312
  See [Supported Conversions - `any_instance` implementation blocks](#any_instance-implementation-blocks) for more details.
307
313
 
308
- ### `-t/--no-explicit-spec-type`
309
-
310
- Suppress adding explicit spec `:type` metadata to example groups in a project using rspec-rails.
311
-
312
- See [Supported Conversions - Implicit spec types in rspec-rails](#implicit-spec-types-in-rspec-rails) for more details.
313
-
314
314
  ### `-p/--no-parens-matcher-arg`
315
315
 
316
316
  Suppress parenthesizing arguments of matchers when converting
@@ -1328,13 +1328,13 @@ END
1328
1328
  Will be converted to:
1329
1329
 
1330
1330
  ```ruby
1331
- <%= convert(example, rspec_version: rspec_version, path: 'spec/models/some_model_spec.rb') -%>
1331
+ <%= convert(example, rspec_version: rspec_version, rails: true, path: 'spec/models/some_model_spec.rb') -%>
1332
1332
  ```
1333
1333
 
1334
- Or with `--no-explicit-spec-type` option they will be converted to:
1334
+ Or with `--explicit-spec-type` option they will be converted to:
1335
1335
 
1336
1336
  ```ruby
1337
- <%= convert(example, rspec_version: rspec_version, path: 'spec/models/some_model_spec.rb', cli: ['--no-explicit-spec-type']) -%>
1337
+ <%= convert(example, rspec_version: rspec_version, rails: true, path: 'spec/models/some_model_spec.rb', cli: ['--explicit-spec-type']) -%>
1338
1338
  ```
1339
1339
 
1340
1340
  * This conversion can be disabled by: `--keep deprecated`
data/lib/transpec/cli.rb CHANGED
@@ -34,8 +34,12 @@ module Transpec
34
34
  return false
35
35
  end
36
36
 
37
- done = process(paths)
38
- return false unless done
37
+ begin
38
+ process(paths)
39
+ rescue DynamicAnalyzer::AnalysisError => error
40
+ warn "\n" + error.message.color(:red)
41
+ return false
42
+ end
39
43
 
40
44
  display_summary
41
45
  generate_commit_message
@@ -47,10 +51,9 @@ module Transpec
47
51
  def process(paths)
48
52
  unless config.skip_dynamic_analysis?
49
53
  runtime_data = run_dynamic_analysis(paths)
50
- return false unless runtime_data
51
54
  end
52
55
 
53
- spec_suite = SpecSuite.new(paths, runtime_data)
56
+ spec_suite = SpecSuite.new(project, paths, runtime_data)
54
57
  # Actually #analyze does not need to be invoked here, but doing this will avoid long freeze
55
58
  # while conversion of files.
56
59
  puts 'Gathering the spec suite data...'
@@ -60,8 +63,6 @@ module Transpec
60
63
  spec_suite.specs.each do |spec|
61
64
  convert_spec(spec, spec_suite)
62
65
  end
63
-
64
- true
65
66
  end
66
67
 
67
68
  def run_dynamic_analysis(paths)
@@ -69,7 +70,7 @@ module Transpec
69
70
 
70
71
  puts 'Copying the project for dynamic analysis...'
71
72
 
72
- DynamicAnalyzer.new(rspec_command: config.rspec_command) do |analyzer|
73
+ DynamicAnalyzer.new(project: project, rspec_command: config.rspec_command) do |analyzer|
73
74
  puts "Running dynamic analysis with command #{analyzer.rspec_command.inspect}..."
74
75
  runtime_data = analyzer.analyze(paths)
75
76
  end
@@ -77,15 +78,12 @@ module Transpec
77
78
  puts
78
79
 
79
80
  runtime_data
80
- rescue DynamicAnalyzer::AnalysisError => error
81
- warn "\n" + error.message.color(:red)
82
- return nil
83
81
  end
84
82
 
85
83
  def convert_spec(spec, spec_suite)
86
84
  puts "Converting #{spec.path}"
87
85
 
88
- converter = Converter.new(spec_suite, config, project.rspec_version)
86
+ converter = Converter.new(spec_suite, project, config)
89
87
  converter.convert_file!(spec)
90
88
 
91
89
  warn_annotations(converter.report)
@@ -129,11 +127,12 @@ module Transpec
129
127
  return unless Git.command_available? && Git.inside_of_repository?
130
128
 
131
129
  commit_message = CommitMessage.new(report, project.rspec_version, ARGV)
132
- Git.write_commit_message(commit_message.to_s)
130
+ commit_message_path = Git.write_commit_message(commit_message.to_s)
131
+ commit_message_path = Pathname.new(commit_message_path).relative_path_from(Pathname.pwd)
133
132
 
134
133
  puts
135
134
  puts 'A commit message that describes the conversion summary was generated to'.color(:cyan)
136
- puts '.git/COMMIT_EDITMSG. To use the message, type the following command for'.color(:cyan)
135
+ puts "#{commit_message_path}. To use the message, type the following command for".color(:cyan)
137
136
  puts 'the next commit:'.color(:cyan)
138
137
  puts ' git commit -aeF .git/COMMIT_EDITMSG'
139
138
  end
@@ -20,8 +20,8 @@ module Transpec
20
20
  [:convert_hook_scope, false],
21
21
  [:convert_stub_with_hash_to_allow_to_receive_and_return, false],
22
22
  [:skip_dynamic_analysis, false],
23
+ [:add_explicit_type_metadata_to_example_group, false],
23
24
  [:add_receiver_arg_to_any_instance_implementation_block, true],
24
- [:add_explicit_type_metadata_to_example_group, true],
25
25
  [:parenthesize_matcher_arg, true]
26
26
  ].freeze
27
27
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  require 'transpec/base_rewriter'
4
4
  require 'transpec/config'
5
+ require 'transpec/project'
5
6
  require 'transpec/report'
6
- require 'transpec/rspec_version'
7
7
  require 'transpec/spec_suite'
8
8
  require 'transpec/syntax'
9
9
 
@@ -13,16 +13,16 @@ module Transpec
13
13
  class Converter < BaseRewriter # rubocop:disable ClassLength
14
14
  include Syntax::Dispatcher
15
15
 
16
- attr_reader :spec_suite, :config, :rspec_version, :report
16
+ attr_reader :spec_suite, :project, :config, :report
17
17
 
18
18
  alias_method :convert_file!, :rewrite_file!
19
19
  alias_method :convert_source, :rewrite_source
20
20
  alias_method :convert, :rewrite
21
21
 
22
- def initialize(spec_suite = nil, config = nil, rspec_version = nil)
22
+ def initialize(spec_suite = nil, project = nil, config = nil)
23
23
  @spec_suite = spec_suite || SpecSuite.new
24
+ @project = project || Project.new
24
25
  @config = config || Config.new
25
- @rspec_version = rspec_version || Transpec.required_rspec_version
26
26
  @report = Report.new
27
27
  end
28
28
 
@@ -30,12 +30,16 @@ module Transpec
30
30
  spec_suite.runtime_data
31
31
  end
32
32
 
33
+ def rspec_version
34
+ project.rspec_version
35
+ end
36
+
33
37
  def process(ast, source_rewriter)
34
38
  return unless ast
35
39
 
36
40
  ast.each_node do |node|
37
41
  begin
38
- dispatch_node(node, source_rewriter, runtime_data, report)
42
+ dispatch_node(node, runtime_data, project, source_rewriter, report)
39
43
  rescue ConversionError => error
40
44
  report.conversion_errors << error
41
45
  end
@@ -88,7 +92,7 @@ module Transpec
88
92
  if !method_stub.hash_arg? ||
89
93
  rspec_version.receive_messages_available? ||
90
94
  config.convert_stub_with_hash_to_allow_to_receive_and_return?
91
- method_stub.allowize!(rspec_version)
95
+ method_stub.allowize!
92
96
  elsif config.convert_deprecated_method?
93
97
  method_stub.convert_deprecated_method!
94
98
  end
@@ -166,7 +170,7 @@ module Transpec
166
170
 
167
171
  def process_rspec_configure(rspec_configure)
168
172
  if config.convert_deprecated_method?
169
- rspec_configure.convert_deprecated_options!(rspec_version)
173
+ rspec_configure.convert_deprecated_options!
170
174
  end
171
175
 
172
176
  if spec_suite.main_rspec_configure_node?(rspec_configure.node)
@@ -29,7 +29,7 @@ module Transpec
29
29
  end
30
30
 
31
31
  def default_rspec_command
32
- if project.require_bundler?
32
+ if project.using_bundler?
33
33
  'bundle exec rspec'
34
34
  else
35
35
  'rspec'
@@ -76,7 +76,7 @@ module Transpec
76
76
  def rewrite_specs(paths)
77
77
  rewriter = Rewriter.new
78
78
 
79
- spec_suite = SpecSuite.new(paths)
79
+ spec_suite = SpecSuite.new(project, paths)
80
80
 
81
81
  spec_suite.specs.each do |spec|
82
82
  next if spec.error
data/lib/transpec/git.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module Transpec
4
4
  module Git
5
5
  GIT = 'git'
6
- COMMIT_MESSAGE_FILE_PATH = File.join('.git', 'COMMIT_EDITMSG')
6
+ COMMIT_MESSAGE_FILENAME = 'COMMIT_EDITMSG'
7
7
 
8
8
  module_function
9
9
 
@@ -24,15 +24,16 @@ module Transpec
24
24
  `#{GIT} status --porcelain`.empty?
25
25
  end
26
26
 
27
- def repository_root
27
+ def git_dir_path
28
28
  fail_unless_inside_of_repository
29
- `#{GIT} rev-parse --show-toplevel`.chomp
29
+ `#{GIT} rev-parse --git-dir`.chomp
30
30
  end
31
31
 
32
32
  def write_commit_message(message)
33
33
  fail_unless_inside_of_repository
34
- file_path = File.join(repository_root, COMMIT_MESSAGE_FILE_PATH)
34
+ file_path = File.expand_path(File.join(git_dir_path, COMMIT_MESSAGE_FILENAME))
35
35
  File.write(file_path, message)
36
+ file_path
36
37
  end
37
38
 
38
39
  def fail_unless_inside_of_repository
@@ -87,12 +87,12 @@ module Transpec
87
87
  config.form_of_be_falsey = type.include?('falsy') ? 'be_falsy' : 'be_falsey'
88
88
  end
89
89
 
90
- define_option('-a', '--no-yield-any-instance') do
91
- config.add_receiver_arg_to_any_instance_implementation_block = false
90
+ define_option('-e', '--explicit-spec-type') do
91
+ config.add_explicit_type_metadata_to_example_group = true
92
92
  end
93
93
 
94
- define_option('-t', '--no-explicit-spec-type') do
95
- config.add_explicit_type_metadata_to_example_group = false
94
+ define_option('-a', '--no-yield-any-instance') do
95
+ config.add_receiver_arg_to_any_instance_implementation_block = false
96
96
  end
97
97
 
98
98
  define_option('-p', '--no-parens-matcher-arg') do
@@ -173,14 +173,14 @@ module Transpec
173
173
  ' *true,false* (exact equality)',
174
174
  'Default: *truthy,falsey*'
175
175
  ],
176
+ '-e' => [
177
+ 'Add explicit `:type` metadata to example groups in a project using',
178
+ 'rspec-rails.'
179
+ ],
176
180
  '-a' => [
177
181
  'Suppress yielding receiver instances to `any_instance`',
178
182
  'implementation blocks as the first block argument.'
179
183
  ],
180
- '-t' => [
181
- 'Suppress adding explicit `:type` metadata to example groups in a',
182
- 'project using rspec-rails.'
183
- ],
184
184
  '-p' => [
185
185
  'Suppress parenthesizing arguments of matchers when converting',
186
186
  '`should` with operator matcher to `expect` with non-operator matcher.',
@@ -1,12 +1,9 @@
1
1
  # coding: utf-8
2
2
 
3
- begin
4
- require 'parser/current'
5
- rescue NotImplementedError
6
- warn 'Falling back to Ruby 2.1 parser.'
7
- require 'parser/ruby21'
8
- Parser::CurrentRuby = Parser::Ruby21 # rubocop:disable ConstantName
9
- end
3
+ original_verbose = $VERBOSE
4
+ $VERBOSE = nil
5
+ require 'parser/current'
6
+ $VERBOSE = original_verbose
10
7
 
11
8
  require 'transpec/ast/builder'
12
9
 
@@ -15,9 +15,18 @@ module Transpec
15
15
  File.basename(path)
16
16
  end
17
17
 
18
- def require_bundler?
19
- gemfile_path = File.join(path, 'Gemfile')
20
- File.exist?(gemfile_path)
18
+ def using_bundler?
19
+ File.exist?(gemfile_lock_path)
20
+ end
21
+
22
+ def depend_on_rspec_rails?
23
+ return @depend_on_rspec_rails if instance_variable_defined?(:@depend_on_rspec_rails)
24
+ return @depend_on_rspec_rails = false unless using_bundler?
25
+
26
+ require 'bundler'
27
+ gemfile_lock_content = File.read(gemfile_lock_path)
28
+ lockfile = Bundler::LockfileParser.new(gemfile_lock_content)
29
+ @depend_on_rspec_rails = lockfile.specs.any? { |gem| gem.name == 'rspec-rails' }
21
30
  end
22
31
 
23
32
  def rspec_version
@@ -25,7 +34,7 @@ module Transpec
25
34
  end
26
35
 
27
36
  def with_bundler_clean_env
28
- if defined?(Bundler) && require_bundler?
37
+ if defined?(Bundler) && using_bundler?
29
38
  Bundler.with_clean_env do
30
39
  # Bundler.with_clean_env cleans environment variables
31
40
  # which are set after bundler is loaded.
@@ -38,9 +47,13 @@ module Transpec
38
47
 
39
48
  private
40
49
 
50
+ def gemfile_lock_path
51
+ @gemfile_lock_path ||= File.join(path, 'Gemfile.lock')
52
+ end
53
+
41
54
  def fetch_rspec_version
42
55
  command = 'rspec --version'
43
- command = 'bundle exec ' + command if require_bundler?
56
+ command = 'bundle exec ' + command if using_bundler?
44
57
 
45
58
  output = nil
46
59