# Given /^this project is active project folder/ do # @active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..") # end # # Given /^env variable \$([\w_]+) set to "(.*)"/ do |env_var, value| # ENV[env_var] = value # end # # Given /"(.*)" folder is deleted/ do |folder| # in_project_folder { FileUtils.rm_rf folder } # end # # When /^I invoke "(.*)" generator with arguments "(.*)"$/ do |generator, arguments| # @stdout = StringIO.new # in_project_folder do # if Object.const_defined?("APP_ROOT") # APP_ROOT.replace(FileUtils.pwd) # else # APP_ROOT = FileUtils.pwd # end # run_generator(generator, arguments.split(' '), SOURCES, :stdout => @stdout) # end # File.open(File.join(@tmp_root, "generator.out"), "w") do |f| # @stdout.rewind # f << @stdout.read # end # end # # When /^I run executable "(.*)" with arguments "(.*)"/ do |executable, arguments| # @stdout = File.expand_path(File.join(@tmp_root, "executable.out")) # in_project_folder do # system "#{executable} #{arguments} > #{@stdout} 2> #{@stdout}" # end # end # # When /^I run project executable "(.*)" with arguments "(.*)"/ do |executable, arguments| # @stdout = File.expand_path(File.join(@tmp_root, "executable.out")) # in_project_folder do # system "ruby #{executable} #{arguments} > #{@stdout} 2> #{@stdout}" # end # end # # When /^I run local executable "(.*)" with arguments "(.*)"/ do |executable, arguments| # @stdout = File.expand_path(File.join(@tmp_root, "executable.out")) # executable = File.expand_path(File.join(File.dirname(__FILE__), "/../../bin", executable)) # in_project_folder do # system "ruby #{executable} #{arguments} > #{@stdout} 2> #{@stdout}" # end # end # # When /^I invoke task "rake (.*)"/ do |task| # @stdout = File.expand_path(File.join(@tmp_root, "tests.out")) # in_project_folder do # system "rake #{task} --trace > #{@stdout} 2> #{@stdout}" # end # end # # Then /^folder "(.*)" (is|is not) created/ do |folder, is| # in_project_folder do # File.exists?(folder).should(is == 'is' ? be_true : be_false) # end # end # # Then /^file "(.*)" (is|is not) created/ do |file, is| # in_project_folder do # File.exists?(file).should(is == 'is' ? be_true : be_false) # end # end # # Then /^file with name matching "(.*)" is created/ do |pattern| # in_project_folder do # Dir[pattern].should_not be_empty # end # end # # Then /^file "(.*)" contents (does|does not) match \/(.*)\// do |file, does, regex| # in_project_folder do # actual_output = File.read(file) # (does == 'does') ? # actual_output.should(match(/#{regex}/)) : # actual_output.should_not(match(/#{regex}/)) # end # end # # Then /gem file "(.*)" and generated file "(.*)" should be the same/ do |gem_file, project_file| # File.exists?(gem_file).should be_true # File.exists?(project_file).should be_true # gem_file_contents = File.read(File.dirname(__FILE__) + "/../../#{gem_file}") # project_file_contents = File.read(File.join(@active_project_folder, project_file)) # project_file_contents.should == gem_file_contents # end # # Then /^(does|does not) invoke generator "(.*)"$/ do |does_invoke, generator| # actual_output = File.read(@stdout) # does_invoke == "does" ? # actual_output.should(match(/dependency\s+#{generator}/)) : # actual_output.should_not(match(/dependency\s+#{generator}/)) # end # # Then /help options "(.*)" and "(.*)" are displayed/ do |opt1, opt2| # actual_output = File.read(@stdout) # actual_output.should match(/#{opt1}/) # actual_output.should match(/#{opt2}/) # end # # Then /^I should see$/ do |text| # actual_output = File.read(@stdout) # actual_output.should contain(text) # end # # Then /^I should not see$/ do |text| # actual_output = File.read(@stdout) # actual_output.should_not contain(text) # end # # Then /^I should see exactly$/ do |text| # actual_output = File.read(@stdout) # actual_output.should == text # end # # Then /^I should see all (\d+) tests pass/ do |expected_test_count| # expected = %r{^#{expected_test_count} tests, \d+ assertions, 0 failures, 0 errors} # actual_output = File.read(@stdout) # actual_output.should match(expected) # end # # Then /^I should see all (\d+) examples pass/ do |expected_test_count| # expected = %r{^#{expected_test_count} examples?, 0 failures} # actual_output = File.read(@stdout) # actual_output.should match(expected) # end # # Then /^yaml file "(.*)" contains (\{.*\})/ do |file, yaml| # in_project_folder do # yaml = eval yaml # YAML.load(File.read(file)).should == yaml # end # end # # Then /^Rakefile can display tasks successfully/ do # @stdout = File.expand_path(File.join(@tmp_root, "rakefile.out")) # in_project_folder do # system "rake -T > #{@stdout} 2> #{@stdout}" # end # actual_output = File.read(@stdout) # actual_output.should match(/^rake\s+\w+\s+#\s.*/) # end # # Then /^task "rake (.*)" is executed successfully/ do |task| # @stdout.should_not be_nil # actual_output = File.read(@stdout) # actual_output.should_not match(/^Don't know how to build task '#{task}'/) # actual_output.should_not match(/Error/i) # end # # Then /^gem spec key "(.*)" contains \/(.*)\// do |key, regex| # in_project_folder do # gem_file = Dir["pkg/*.gem"].first # gem_spec = Gem::Specification.from_yaml(`gem spec #{gem_file}`) # spec_value = gem_spec.send(key.to_sym) # spec_value.to_s.should match(/#{regex}/) # end # end