Skip to content

Commit 0919d2a

Browse files
committed
Add option to install rspec at custom directory
1 parent ca907cf commit 0919d2a

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

lib/generators/rspec/install/install_generator.rb

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class InstallGenerator < ::Rails::Generators::Base
1212
Copy rspec files to your application.
1313
DESC
1414

15+
class_option :default_path, type: :string, default: 'spec'
16+
1517
def self.source_root
1618
@source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
1719
end
@@ -20,12 +22,12 @@ def copy_spec_files
2022
Dir.mktmpdir do |dir|
2123
generate_rspec_init dir
2224
template File.join(dir, '.rspec'), '.rspec'
23-
directory File.join(dir, 'spec'), 'spec'
25+
directory File.join(dir, 'spec'), default_path
2426
end
2527
end
2628

2729
def copy_rails_files
28-
template 'spec/rails_helper.rb'
30+
template 'spec/rails_helper.rb', "#{default_path}/rails_helper.rb"
2931
end
3032

3133
private
@@ -41,6 +43,10 @@ def generate_rspec_init(tmpdir)
4143

4244
replace_generator_command(spec_helper_path)
4345
remove_warnings_configuration(spec_helper_path)
46+
47+
dot_rspec_path = File.join(tmpdir, '.rspec')
48+
49+
append_default_path(dot_rspec_path)
4450
end
4551

4652
def replace_generator_command(spec_helper_path)
@@ -58,6 +64,15 @@ def remove_warnings_configuration(spec_helper_path)
5864
'',
5965
verbose: false
6066
end
67+
68+
def append_default_path(dot_rspec_path)
69+
append_to_file dot_rspec_path,
70+
"--default-path #{default_path}"
71+
end
72+
73+
def default_path
74+
options[:default_path]
75+
end
6176
end
6277
end
6378
end

0 commit comments

Comments
 (0)