Class: SpecHelperGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/serverspec_launcher/generators/spec_helper_generator.rb

Overview

Generate the spec_helpr.rb file

Instance Method Summary collapse

Constructor Details

#initialize(root_path = nil) ⇒ SpecHelperGenerator

Returns a new instance of SpecHelperGenerator.



6
7
8
9
10
# File 'lib/serverspec_launcher/generators/spec_helper_generator.rb', line 6

def initialize(root_path = nil)
  path = root_path ? "#{root_path}/" : ''
  @template_path = File.expand_path('../../../../templates', __FILE__)
  @spec_helper = "#{path}spec/spec_helper.rb"
end

Instance Method Details

#create_spec_dirObject



16
17
18
# File 'lib/serverspec_launcher/generators/spec_helper_generator.rb', line 16

def create_spec_dir
  Dir.mkdir File.dirname(@spec_helper) unless File.exist?(File.dirname(@spec_helper))
end

#generateObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/serverspec_launcher/generators/spec_helper_generator.rb', line 20

def generate
  if File.exist?(@spec_helper)
    str = File.read(@spec_helper)
    new_str = if str.include? "require 'serverspec_launcher/spec_helper'"
                str
              else
                str.sub(/((require .*\n)+)/, "\\1require 'serverspec_launcher/spec_helper'\n")
              end
    File.open(@spec_helper, 'w') { |file| file.write new_str }
  else
    create_spec_dir
    renderer = ERB.new rakefile_template
    File.open(@spec_helper, 'w') { |file| file.write renderer.result }
  end
end

#rakefile_templateObject



12
13
14
# File 'lib/serverspec_launcher/generators/spec_helper_generator.rb', line 12

def rakefile_template
  File.read "#{@template_path}/spec_helper.rb.erb"
end