Sha256: efcd0ac0fa4a3c2ce8118a30f01c4e0db425a5fc60cf68056acec84d330e3710
Contents?: true
Size: 1.88 KB
Versions: 1
Compression:
Stored size: 1.88 KB
Contents
require 'rubygems' require 'tempfile' require 'spec/expectations' require 'fileutils' require 'forwardable' class Features2CardsWorld extend Forwardable def_delegators Features2CardsWorld, :examples_dir, :self_test_dir, :working_dir, :features2cards_lib_dir def self.examples_dir(subdir=nil) @examples_dir ||= File.expand_path(File.join(File.dirname(__FILE__), '../../examples')) subdir ? File.join(@examples_dir, subdir) : @examples_dir end def self.self_test_dir @self_test_dir ||= examples_dir('self_test') end def self.working_dir @working_dir ||= examples_dir('self_test/tmp') end def features2cards_lib_dir @features2cards_lib_dir ||= File.expand_path(File.join(File.dirname(__FILE__), '../../lib')) end def initialize @current_dir = self_test_dir end private attr_reader :last_exit_status, :last_stderr # The last standard out, with the duration line taken out (unpredictable) def last_stdout strip_duration(@last_stdout) end def strip_duration(s) s.gsub(/^\d+m\d+\.\d+s\n/m, "") end def replace_duration(s, replacement) s.gsub(/\d+m\d+\.\d+s/m, replacement) end def create_file(file_name, file_content) file_content.gsub!("FEATURES2CARDS_LIB", "'#{features2cards_lib_dir}'") # Some files, such as Rakefiles need to use the lib dir in_current_dir do File.open(file_name, 'w') { |f| f << file_content } end end def in_current_dir(&block) Dir.chdir(@current_dir, &block) end def run(command) stderr_file = Tempfile.new('features2cards') stderr_file.close in_current_dir do @last_stdout = `#{command} 2> #{stderr_file.path}` @last_exit_status = $?.exitstatus end @last_stderr = IO.read(stderr_file.path) end end World do Features2CardsWorld.new end Before do FileUtils.rm_rf Features2CardsWorld.working_dir FileUtils.mkdir Features2CardsWorld.working_dir end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
features2cards-0.4.0 | features/support/env.rb |