class RSpec::Core::ProjectInitializer

@private Generates conventional files for an RSpec project.

Constants

DOT_RSPEC_FILE
SPEC_HELPER_FILE

Attributes

destination[R]
stream[R]
template_path[R]

Public Class Methods

new(opts={}) click to toggle source
# File lib/rspec/core/project_initializer.rb, line 13
def initialize(opts={})
  @destination = opts.fetch(:destination, Dir.getwd)
  @stream = opts.fetch(:report_stream, $stdout)
  @template_path = opts.fetch(:template_path) do
    File.expand_path("../project_initializer", __FILE__)
  end
end

Public Instance Methods

run() click to toggle source
# File lib/rspec/core/project_initializer.rb, line 21
def run
  copy_template DOT_RSPEC_FILE
  copy_template SPEC_HELPER_FILE
end

Private Instance Methods

copy_template(file) click to toggle source
# File lib/rspec/core/project_initializer.rb, line 28
def copy_template(file)
  destination_file = File.join(destination, file)
  return report_exists(file) if File.exist?(destination_file)

  report_creating(file)
  RSpec::Support::DirectoryMaker.mkdir_p(File.dirname(destination_file))
  File.open(destination_file, 'w') do |f|
    f.write File.read(File.join(template_path, file))
  end
end
report_creating(file) click to toggle source
# File lib/rspec/core/project_initializer.rb, line 43
def report_creating(file)
  stream.puts "  create   #{file}"
end
report_exists(file) click to toggle source
# File lib/rspec/core/project_initializer.rb, line 39
def report_exists(file)
  stream.puts "   exist   #{file}"
end