Sha256: e69fa2fef15ea77f17245ccda451bad587ffef6e17377622d93852f965b56df8

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

module KatapultRailsHelper

  def with_aruba_timeout(timeout, &block)
    original_aruba_timeout = @aruba_timeout_seconds
    @aruba_timeout_seconds = timeout

    block.call
  ensure
    @aruba_timeout_seconds = original_aruba_timeout
  end

  def create_cached_app(name)
    job = 'Cached Rails app generation'
    rails_new_command = "bundle exec rails new #{name} --skip-test-unit --skip-bundle --database mysql"

    puts "#{job} started (in #{Dir.pwd})"
    system(rails_new_command) or raise "#{job} failed"
    puts "#{job} done."
  end

  def ensure_bundled(path)
    Dir.chdir(path) do
      Bundler.with_clean_env do
        system('bundle check > /dev/null 2>&1') or system('bundle install')
      end
    end
  end

end
World(KatapultRailsHelper)


Given /^a pristine Rails application$/ do
  with_aruba_timeout(120) do
    Dir.chdir('tmp') do
      create_cached_app('cached_test_app') unless File.directory?('cached_test_app')
      ensure_bundled('cached_test_app')
    end

    # copy cached app to aruba directory
    FileUtils.cp_r('tmp/cached_test_app', File.join(current_dir, 'katapult_test_app'))
    cd 'katapult_test_app' # Aruba::Api method
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
katapult-0.1.1 features/step_definitions/rails_steps.rb