class CucumberOffRails::Generator
Attributes
options[RW]
project_name[RW]
remote_site[RW]
target_dir[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 12 def initialize(options = {}) self.options = options self.remote_site = options[:remote_site] || "http://www.google.com" self.project_name = options[:project_name] self.target_dir = options[:directory] || self.project_name || "cucumber_off_rails_project" end
Public Instance Methods
create_files()
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 23 def create_files unless File.exists?(target_dir) || File.directory?(target_dir) FileUtils.mkdir target_dir else raise "The directory #{target_dir} already exists, aborting. Maybe move it out of the way before continuing?" end output_template_in_target "Gemfile" output_template_in_target "Rakefile" mkdir_in_target "features" output_template_in_target File.join("features", "sample.feature") mkdir_in_target "features/step_definitions" output_template_in_target File.join("features", "step_definitions", "debugging_steps.rb") output_template_in_target File.join("features", "step_definitions", "linking_steps.rb") output_template_in_target File.join("features", "step_definitions", "login_steps.rb") output_template_in_target File.join("features", "step_definitions", "selector_steps.rb") output_template_in_target File.join("features", "step_definitions", "validation_steps.rb") mkdir_in_target "features/support" output_template_in_target File.join("features", "support", "env.rb") output_template_in_target File.join("features", "support", "hooks.rb") output_template_in_target File.join("features", "support", "paths.rb") output_template_in_target File.join("features", "support", "selectors.rb") end
mkdir_in_target(directory)
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 69 def mkdir_in_target(directory) final_destination = File.join(target_dir, directory) FileUtils.mkdir final_destination $stdout.puts "\tcreate\t#{directory}" end
output_template_in_target(source, destination = source)
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 48 def output_template_in_target(source, destination = source) final_destination = File.join(target_dir, destination) template_result = render_template(source) File.open(final_destination, 'w') {|file| file.write(template_result)} $stdout.puts "\tcreate\t#{destination}" end
render_template(source)
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 57 def render_template(source) template_contents = File.read(File.join(template_dir, source)) template = ERB.new(template_contents, nil, '<>') # squish extraneous whitespace from some of the conditionals template.result(binding).gsub(/\n\n\n+/, "\n\n") end
run()
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 19 def run create_files end
template_dir()
click to toggle source
# File lib/cucumber_off_rails/generator.rb, line 65 def template_dir File.join(File.dirname(__FILE__), 'templates') end