pax_global_header00006660000000000000000000000064137745347670014541gustar00rootroot0000000000000052 comment=b9ec04419bc8f766b321ef155721736188c1c32b ruby-aruba-1.0.4/000077500000000000000000000000001377453476700136145ustar00rootroot00000000000000ruby-aruba-1.0.4/.cucumberproignore000066400000000000000000000000761377453476700173520ustar00rootroot00000000000000/ !features/ features/04_aruba_api/command/run_simple.feature ruby-aruba-1.0.4/.document000066400000000000000000000000741377453476700154340ustar00rootroot00000000000000README.rdoc lib/**/*.rb bin/* features/**/*.feature LICENSE ruby-aruba-1.0.4/.github/000077500000000000000000000000001377453476700151545ustar00rootroot00000000000000ruby-aruba-1.0.4/.github/ISSUE_TEMPLATE.md000066400000000000000000000032171377453476700176640ustar00rootroot00000000000000 ## Summary ## Expected Behavior ## Current Behavior ~~~ ~~~ ## Possible Solution ## Steps to Reproduce (for bugs) 1. 2. 3. 4. ## Context & Motivation ## Your Environment * Version used: * Operating System and version: * Link to your project: ruby-aruba-1.0.4/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000030131377453476700207520ustar00rootroot00000000000000 ## Summary ## Details ## Motivation and Context ## How Has This Been Tested? ## Screenshots (if appropriate): ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Refactoring (cleanup of codebase without changing any existing functionality) - [ ] Update documentation ## Checklist: - [ ] I've added tests for my code - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. ruby-aruba-1.0.4/.github/dependabot.yml000066400000000000000000000004071377453476700200050ustar00rootroot00000000000000# Documentation for all configuration options: # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 updates: - package-ecosystem: "bundler" directory: "/" schedule: interval: "daily" ruby-aruba-1.0.4/.github/workflows/000077500000000000000000000000001377453476700172115ustar00rootroot00000000000000ruby-aruba-1.0.4/.github/workflows/ruby.yml000066400000000000000000000030121377453476700207110ustar00rootroot00000000000000# This workflow will download a prebuilt Ruby version, install dependencies and # run tests with Rake # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby name: Ruby on: push: branches: [ master ] pull_request: branches: [ master ] env: CUCUMBER_PUBLISH_QUIET: true JRUBY_OPTS: "--dev" jobs: test-ubuntu: strategy: matrix: ruby: [2.4.0, 2.4, 2.5, 2.6, 2.7, "3.0", jruby-9.2] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Configure bundler globally run: bundle config --global path $PWD/vendor/bundle - name: Run specs run: bundle exec rake spec - name: Run cukes run: bundle exec rake cucumber test-macos: strategy: matrix: ruby: [2.4, 2.5, 2.6, 2.7, "3.0"] runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Run specs run: bundle exec rake spec - name: Run cukes run: bundle exec rake cucumber lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.7 bundler-cache: true - name: Run linters run: bundle exec rake lint ruby-aruba-1.0.4/.gitignore000066400000000000000000000005261377453476700156070ustar00rootroot00000000000000## MAC OS .DS_Store ## TEXTMATE *.tmproj tmtags ## EMACS *~ \#* .\#* ## RUBYMINE .idea ## VIM *.swp tags ## PROJECT::GENERAL coverage rdoc pkg *.log ## PROJECT::SPECIFIC tmp .bundle doc Gemfile.lock Gemfile.local cucumber-pro.log ## Ruby versioniser .ruby-version # Temp files of yar .yardoc # RSpec example status spec/examples.txt ruby-aruba-1.0.4/.rspec000066400000000000000000000000421377453476700147250ustar00rootroot00000000000000--color --order random --warnings ruby-aruba-1.0.4/.rubocop.yml000066400000000000000000000011671377453476700160730ustar00rootroot00000000000000require: - rubocop-packaging - rubocop-performance - rubocop-rspec AllCops: Exclude: - tmp/**/* - vendor/**/* DisplayCopNames: true NewCops: enable TargetRubyVersion: 2.4 # Use older RuboCop default Style/PercentLiteralDelimiters: PreferredDelimiters: '%w': () # SupportedStyles: percent, brackets Style/SymbolArray: EnforcedStyle: brackets # Code is currently broken with frozen string literal comments applied. # TODO: Enable and fix build Style/FrozenStringLiteralComment: Enabled: false # Be relatively lenient with line length Layout/LineLength: Max: 94 inherit_from: .rubocop_todo.yml ruby-aruba-1.0.4/.rubocop_todo.yml000066400000000000000000000145471377453476700171260ustar00rootroot00000000000000# This configuration was generated by # `rubocop --auto-gen-config --no-offense-counts --no-auto-gen-timestamp` # using RuboCop version 1.6.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. # Configuration parameters: Include. # Include: **/*.gemspec Gemspec/RequiredRubyVersion: Exclude: - 'fixtures/cli-app/cli-app.gemspec' - 'fixtures/empty-app/cli-app.gemspec' Lint/AmbiguousBlockAssociation: Exclude: - 'lib/aruba/platforms/announcer.rb' # Configuration parameters: AllowComments. Lint/EmptyClass: Exclude: - 'spec/event_bus_spec.rb' Lint/MissingSuper: Exclude: - 'lib/aruba/contracts/enum.rb' - 'lib/aruba/matchers/collection/include_an_object.rb' # Configuration parameters: CheckForMethodsWithNoSideEffects. Lint/Void: Exclude: - 'lib/aruba/platforms/announcer.rb' - 'lib/aruba/platforms/unix_environment_variables.rb' # Configuration parameters: IgnoredMethods, CountRepeatedAttributes. Metrics/AbcSize: Max: 118 # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods. # IgnoredMethods: refine Metrics/BlockLength: Max: 594 # Configuration parameters: CountComments, CountAsOne. Metrics/ClassLength: Max: 158 # Configuration parameters: IgnoredMethods. Metrics/CyclomaticComplexity: Max: 13 # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods. Metrics/MethodLength: Max: 59 # Configuration parameters: CountComments, CountAsOne. Metrics/ModuleLength: Max: 182 # Configuration parameters: IgnoredMethods. Metrics/PerceivedComplexity: Max: 14 Naming/ConstantName: Exclude: - 'lib/aruba/platform.rb' # Configuration parameters: ForbiddenDelimiters. # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$)) Naming/HeredocDelimiterNaming: Exclude: - 'lib/aruba/initializer.rb' # Configuration parameters: EnforcedStyleForLeadingUnderscores. # SupportedStylesForLeadingUnderscores: disallowed, required, optional Naming/MemoizedInstanceVariableName: Exclude: - 'lib/aruba/api/core.rb' # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames. # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to Naming/MethodParameterName: Exclude: - 'lib/aruba/aruba_path.rb' - 'lib/aruba/config_wrapper.rb' - 'lib/aruba/platforms/announcer.rb' - 'lib/aruba/platforms/aruba_logger.rb' - 'lib/aruba/platforms/unix_platform.rb' - 'lib/aruba/tasks/docker_helpers.rb' # Cop supports --auto-correct. Performance/Caller: Exclude: - 'lib/aruba/platforms/unix_platform.rb' # Configuration parameters: Prefixes. # Prefixes: when, with, without RSpec/ContextWording: Exclude: - 'spec/aruba/api/filesystem_spec.rb' - 'spec/aruba/api/runtime_spec.rb' - 'spec/aruba/api_spec.rb' - 'spec/aruba/matchers/command_spec.rb' - 'spec/aruba/matchers/file_spec.rb' - 'spec/aruba/matchers/path_spec.rb' - 'spec/aruba/platform/windows_environment_variables_spec.rb' - 'spec/support/shared_contexts/aruba.rb' # Configuration parameters: IgnoredMetadata. RSpec/DescribeClass: Exclude: - 'spec/aruba/api/runtime_spec.rb' - 'spec/aruba/jruby_spec.rb' - 'spec/aruba/matchers/collection_spec.rb' - 'spec/aruba/matchers/command/have_output_size_spec.rb' - 'spec/aruba/matchers/command_spec.rb' - 'spec/aruba/matchers/directory_spec.rb' - 'spec/aruba/matchers/file_spec.rb' - 'spec/aruba/matchers/path_spec.rb' - 'spec/aruba/platform/simple_table_spec.rb' # Configuration parameters: Max. RSpec/ExampleLength: Exclude: - 'spec/aruba/api/core_spec.rb' - 'spec/aruba/api/filesystem_spec.rb' - 'spec/aruba/aruba_path_spec.rb' - 'spec/aruba/matchers/collection_spec.rb' # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly. # Include: **/*_spec*rb*, **/spec/**/* RSpec/FilePath: Exclude: - 'spec/aruba/platform/windows_environment_variables_spec.rb' - 'spec/aruba/platforms/command_monitor_spec.rb' - 'spec/event_bus/name_resolver_spec.rb' - 'spec/event_bus_spec.rb' # Configuration parameters: AssignmentOnly. RSpec/InstanceVariable: Exclude: - 'spec/aruba/api/bundler_spec.rb' - 'spec/aruba/api/commands_spec.rb' - 'spec/aruba/api/core_spec.rb' - 'spec/aruba/api/filesystem_spec.rb' - 'spec/aruba/api_spec.rb' - 'spec/aruba/matchers/command/have_output_size_spec.rb' - 'spec/aruba/matchers/command_spec.rb' - 'spec/aruba/matchers/directory_spec.rb' - 'spec/aruba/matchers/file_spec.rb' - 'spec/aruba/matchers/path_spec.rb' - 'spec/aruba/processes/in_process_spec.rb' - 'spec/aruba/runtime_spec.rb' - 'spec/event_bus_spec.rb' - 'spec/support/shared_contexts/aruba.rb' RSpec/MultipleExpectations: Max: 5 # Configuration parameters: AllowSubject. RSpec/MultipleMemoizedHelpers: Max: 11 RSpec/NestedGroups: Max: 6 Security/Open: Exclude: - 'lib/aruba/processes/spawn_process.rb' # Configuration parameters: EnforcedStyle, AllowModifiersOnSymbols. # SupportedStyles: inline, group Style/AccessModifierDeclarations: Exclude: - 'lib/aruba/matchers/collection/all.rb' # Cop supports --auto-correct. # Configuration parameters: AllowOnConstant. Style/CaseEquality: Exclude: - 'lib/aruba/matchers/base/object_formatter.rb' Style/Documentation: Exclude: - 'spec/**/*' - 'test/**/*' - 'fixtures/cli-app/lib/cli/app.rb' - 'fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb' - 'fixtures/empty-app/lib/cli/app.rb' - 'lib/aruba/api/bundler.rb' - 'lib/aruba/matchers/collection/include_an_object.rb' - 'lib/aruba/platforms/command_monitor.rb' - 'lib/aruba/setup.rb' - 'lib/aruba/tasks/docker_helpers.rb' # Configuration parameters: MaxUnannotatedPlaceholdersAllowed. # SupportedStyles: annotated, template, unannotated Style/FormatStringToken: EnforcedStyle: unannotated # Configuration parameters: MinBranchesCount. Style/HashLikeCase: Exclude: - 'lib/aruba/cucumber/command.rb' # Configuration parameters: AllowedMethods. # AllowedMethods: respond_to_missing? Style/OptionalBooleanParameter: Exclude: - 'lib/aruba/api/core.rb' - 'lib/aruba/platforms/aruba_file_creator.rb' - 'lib/aruba/setup.rb' ruby-aruba-1.0.4/.simplecov000066400000000000000000000020311377453476700156120ustar00rootroot00000000000000SimpleCov.configure do # Activate branch coverage enable_coverage :branch # ignore this file add_filter '.simplecov' add_filter 'features' # Rake tasks aren't tested with rspec add_filter 'Rakefile' add_filter 'lib/tasks' # # Changed Files in Git Group # @see http://fredwu.me/post/35625566267/simplecov-test-coverage-for-changed-files-only untracked = `git ls-files --exclude-standard --others` unstaged = `git diff --name-only` staged = `git diff --name-only --cached` all = untracked + unstaged + staged changed_filenames = all.split("\n") add_group 'Changed' do |source_file| changed_filenames.select do |changed_filename| source_file.filename.end_with?(changed_filename) end end add_group 'Libraries', 'lib' # Specs are reported on to ensure that all examples are being run and all # lets, befores, afters, etc are being used. add_group 'Specs', 'spec/' end # Run simplecov by default SimpleCov.start unless ENV.key? 'ARUBA_NO_COVERAGE' ruby-aruba-1.0.4/.yardopts000066400000000000000000000002561377453476700154650ustar00rootroot00000000000000--output doc/yard --exclude features/ --exclude bin/bootstrap --exclude bin/test --exclude license --verbose --markup-provider kramdown --markup markdown - LICENSE README.md ruby-aruba-1.0.4/CHANGELOG.md000066400000000000000000001652241377453476700154370ustar00rootroot00000000000000# CHANGELOG All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning][1]. This document is formatted according to the principles of [Keep A CHANGELOG][2]. ## [1.0.4] / 2021-01-04 * Update rubocop and fix new offenses (various pull requests) * Turn off Cucumber publish warning in CI ([#737] by [olleolleolle]) * Move CI from Travis CI to GitHub Actions ([#738] by [mvz]) * Remove superfluous :each from before hooks in RSpec-related cucumber scenarios ([#748] by [mvz]) * Make disabling Bundler more robust ([#750] by [mvz]) * Officially support Ruby 3.0 ([#763] by [mvz]) * Clean up hook methods in configuration ([#751] by [mvz]) * Speed up RSpec suite ([#767] by [mvz]) * Speed up Cucumber suite ([#766] and [#771] by [mvz]) * Remove obsolete `String#strip_heredoc` monkey-patch ([#769] by [mvz]) * Simplify configuration option specification ([#772] by [mvz]) ## [1.0.3] * Loosen Cucumber dependency to allow Cucumber 5.0 ([#727] by [mvz]) * Update rubocop and fix new offenses ([#719] and [#724] by [mvz]) * Rework gemspec to avoid dependency on git ([#721] by [utkarsh2102], [#725] by [mvz]) ## [1.0.2] * Loosen childprocess dependency ([00cb0789](https://github.com/cucumber/aruba/commit/00cb07897c9f99e59bea630ae164cf5aa78fa76c) by [mvz]). * Various small code cleanups ([#717] by [mvz]) ## [1.0.1] ### Bug fixes * Allow use of Aruba with Cucumber 4 ([#715] by [mvz]) ### Code quality and documentation improvements * Fix RuboCop offenses ([#693] and [#708] by [luke-hill], [#710], [#711] and [#712] by [mvz]) * Use recent Rake version in fixtures ([#709] by [mvz]) * Repair YARD annotations ([#707] by [olleolleolle]) ## [1.0.0] ### Breaking changes compared to Aruba 0.14.x * Support for Ruby 2.3 and lower has been dropped * Deprecated functionality has been removed * The home directory is set to aruba's working directory by default ### Detailed changes compared to 1.0.0.pre.alpha.5 * Update simplecov ([#704] by [mvz]) * Several cuke improvements ([#703] by [mvz]) * Find relative commands from the current Aruba directory ([#702] by [mvz]) * Update development dependencies ([#701] by [mvz]) * Clean up linting and fix environment nesting ([#698] by [mvz]) * Update build configuration ([#696] by [mvz]) * Fix cd behavior with absolute paths and home directory ([#692] by [mvz]) * Improve `expand_path` warnings ([#687] by [deivid-rodriguez]) * Remove unneeded appveyor step ([#690] by [deivid-rodriguez]) * Fix travis.yml lint task ([#689] by [deivid-rodriguez]) * Fix cucumber deprecations ([#688] by [deivid-rodriguez]) * Update gemspec: Metadata and RDoc options ([#686] by [mvz]) * Update dependencies and fix RuboCop offenses ([#683] by [mvz]) * Init: Conditionally prefix the `gem aruba` line with a carriage return ([#570] by [xtrasimplicity]) * Update supported set of rubies([#679] by [mvz]) ## [1.0.0.pre.alpha.5] * Improve command failure message ([#675] by [deivid-rodriguez]) * Bump childprocess dependency ([#674] by [mvz]) * Suppress keyword argument warnings in Ruby 2.7 ([#672] by [koic]) * Refactor: Uncouple some of aruba's step definition code ([#666] by [luke-hill]) * Fix several JRuby build issues ([bb770e2e](https://github.com/cucumber/aruba/commit/bb770e2e82ec09807b07eed1f4a124612eeee3f4), [#669] and [#671] by [mvz]) * Clean up build ([#663] by [mvz]) * Handle announcing combined with DebugProcess ([#665] by [mvz]) * Allow both 'a' and 'the' in step, as documented ([#660] by [mvz]) * Fix rubocop issues ([#654] and [#659] by [luke-hill]) * Fix up JRuby build ([#657] by [mvz]) * Improve documentation for the `@debug` annotation ([#656] by [mvz]) * Support windows internal commands ([#655] by [xtrasimplicity]) * Do not set binmode on output temp files ([#652] by [mvz]) * Fix JRuby builds ([#637] by [mvz]) * Restore previously removed behaviors ([#644] by [mvz]) * Improve cucumber features ([#643] by [mvz]) * Move development dependency information to gemspec ([#631] by [luke-hill]) * Fix JRuby before :command helper hook ([#635] by [mvz]) * Replace problematic AnsiColor module with simple implementation ([#636] by [mvz]) * Drop Ruby 2.2 support ([#616] by [mvz] and [luke-hill]) ## [1.0.0.pre.alpha.4] * Improve documentation: GitHub is not Github ([#629] by [amatsuda]) * TimeoutError is deprecated in favor of Timeout::Error ([#628] by [amatsuda]) * Allow use with Cucumber 3.x ([#626] by [mvz]) ## [1.0.0.pre.alpha.3] ### Added * Allow `#expand_path` to be used with absolute paths. This will emit a warning, which can be silenced with a configuration option ([#540] by [mvz]) * Allow decimal seconds in Cucumber steps that set Aruba timeout values ([#544] by [mvz]) * Make `have_file_content` diffable ([#562] by [cllns]) * Restore `@disable-bundler` hook ([#560] by [mvz]) ### Changed * Improve documentation for users and developers ([#454], [#456], [#457], [#460], [#459], [#461], [#475], [#494] by [olleolleolle], [maxmeyer], [mvz]) * Make forgetting `setup_aruba` a hard failure ([#510] by [mvz]) * Update dependencies ([#511], [#541], [#553] by [mvz], [#528] by [maxmeyer], [#615] by [luke-hill] and [mvz]) * Improve output of `#have_output` matcher ([#546] by [mvz]) * Removed `have_same_file_content_like` and `a_file_with_same_content_like` matchers, in favour of `have_same_file_content_as` and `a_file_with_same_content_as` ([#555] by [xtrasimplicity]) ### Removed * Remove deprecated functionality ([#483], [#488], [#508] by [mvz]) * Remove broken RVM-related step definition ([#587] by [mvz]) * Drop support for Rubies below 2.2 ([#613] by [luke-hill]) ### Bug fixes * Fix UTF-8 issues with jRuby ([#462] by [stamhankar999]) * Allow slashes in file matching regex ([#512] by [scottj97] with [richardxia]) * Avoid duplicate output appearing in certain cases ([#517] by [maxmeyer] and [mvz]) * Fix `@no-clobber` breaking process management ([#535] by [doudou]) * Fix command spawning when spaces occur in the path ([#520] by [mvz]) * Make exit in in-process runner behave like real Kernel#exit ([#594] by [grosser]) * Improve compatibility with Windows ([#618] by [mvz]) - Upcase ENV keys on Windows - Properly escape command and arguments on Windows - Use correct path separator on Windows ### Developer experience and internal changes * Fix test suite failures ([#452], [#497] by [maxmeyer] and [mvz]; [#487], [#509] by [mvz]) * Remove development gems for unsupported Rubinius platform ([#464] by [maxmeyer]) * Update `license_finder` dependency ([#466] by [maxmeyer]) * Restrict branches to run Travis ([#471] by [junaruga]) * Maintain Travis builds ([#476] by [maxmeyer]; [#493] [#532], [#536] by [mvz]; [#542], [#596], [#607] by [olleolleolle]) * Rename History.md to CHANGELOG.md and fix links and formatting, etc. to bring it in line with [cucumber/cucumber#521] ([#481], [#482] by [jaysonesmith]) * Fix YARD documentation issues ([#491] [olleolleolle]) * Change maintainership ([#495], [#523] by [maxmeyer]) * Remove commented-out code ([#498] by [olleolleolle]) * Documentation fixups ([#504] by [roschaefer]; [#530] by [xtrasimplicity]; [#606] by [olleolleolle]) * Add 'stale' bot ([#507] by [maxmeyer] * Update RuboCop and fix some offenses ([#514], [#537] by [mvz]) * Mark scenarios requiring external commands ([#515] [mvz]) * Remove cucumber features related to Aruba development ([#522], [#543], [#544] [mvz]) * Avoid long waits in feature suite ([#544] [mvz]) * Clean up internally used cuke tags and their implementation ([#548] by [mvz]) * Test with Ruby 2.5 and 2.6 ([#554] by [nicolasleger], [#578] by [mvz]) * Fix tests on Debian. ([#575] by [Heinrich]) * Update development dependencies ([#580] by [mvz]) * Start work on unifying still and master branches ([#583], [#584] by [mvz]) * Update CONTRIBUTING.md and drop bin/bootstrap ([#593] by [olleolleolle]) * Point to https version of GitHub repo URL ([#623] by [amatsuda]) ## [1.0.0.pre.alpha.2] * Update examples for usage in README * Fix environment manipulation ([#442]) * Update supported ruby versions in .travis.yml ([#449]) * Use `license_finder` version which is usable for rubies `< 2.3` ([#451]) * Wrap test runners in `bundle exec` ([#447]) * Fix wording in README ([#445]) * Restructure README and upload feature files to cucumber.pro ([#444]) ## [1.0.0.pre.alpha.1] Note: These are changes w.r.t. Aruba version 0.14.1. * Use new proposed structure for gems by bundler ([#439]) * Rename methods which run commands ([#438]) * Fix dependency error for install ([#427]) * Actually fail the build if rake test fails ([#433]) * Improve frozen-string-literals compatibility. ([#436]) * Fix running commands on Windows ([#387]) * Fix running commands on Windows ([#387]) * Set permissions to values which are supported on Windows ([#398], [#388]) * Remove Aruba::Reporting ([#389]) * Rename bin/cli to bin/aruba-test-cli to prevent name conflict ([#390]) * Drop support for `ruby < 1.9.3` and rubinius ([#385]) * Fixed wrong number of arguments in `Aruba::Platforms::WindowsEnvironmentVariables#delete` ([#349], [#358] by [e2]) * Fixed colors in `script/bootstrap` ( [#352], [e2]) * Fixed use of removed `Utils`-module ([#347], [e2]) * Fixed exception handler in BasicProcess ([#357], [e2]) * Fixed step to check for existing of files ([#375], [rubbish]) * Fixed unset instance variable ([#372], [e2]) * Added vision and hints to project README ([#366]) * Fixed setting environment variables on Windows ([#358], [e2]) * Fixed the logic to determine disk usage ([#359], [e2]) * Prefixed exception in `rescue`-call to make it fail with a proper error message ([#376]) * Run and build aruba in isolated environment via docker ([#353] by [e2], [#382]) * Run container with docker-compose without making docker-compose a required dependency. Rake tasks read in the docker-compose.yml instead ([#382]) * Document developer rake tasks via cucumber features ([#382]) * Add more hints to CONTRIBUTING.md ([#382]) * Add TESTING.md (WIP) ([#382], [e2]) * Cleanup rake tasks via separate namespaces ([#382]) * Some more minor fixes ([#382]) * Don't run feature test if executable required for test is not installed (python, bash, zsh, javac, ...) ([#382]) * Support for rubies older than 1.9.3 is discontinued - e.g 1.8.7 and 1.9.2 * aruba requires "cucumber 2" for the feature steps. The rest of aruba should be usable by whatever testing framework you are using. * Overwriting methods for configuration is discontinued. You need to use `aruba.config.` or `Aruba.configure { |config| config.` instead. * "aruba/reporting" will be removed. Please use `@debug`-tag + `byebug`, `debugger`, `pry` to troubleshoot your feature tests. * Set environment variables will have only effect on `#run` and the like + `#with_environment { }`. * The process environment will be fully resetted between tests. Sharing state via ENV['VAR'] = 'shared state' between tests will not be possible anymore. Please make that obvious by using explicit steps or use the aruba API for that. * There will be a major cleanup for command execution. There will be only `run` and `run_simple` left. `run_interactive` is replaced by `run`. * Setting the root directory of aruba via method overwrite or configuration - this should be your project root directory where the test suite is run. * The direct use of "InProcess", "DebugProcess" and "SpawnProcess" is not supported anymore. You need to use "Command" instead. But be careful, it has a different API. * HOME can be configured via `Aruba.configure {}` and defaults to `File.join(aruba.config.root_directory, aruba.config.working_directory?)` if `aruba/cucumber` or `aruba/rspec` is used. * Use different working directories based on test suite - RSpec, Cucumber. It's `tmp/rspec` and `tmp/cucumber` now to make sure they do not overwrite the test results from each other. * The use of `@interactive` is discontinued. You need to use `#last_command_started`-method to get access to the interactively started command. * If multiple commands have been started, each output has to be check separately Scenario: Detect stdout from all processes When I run `printf "hello world!\n"` And I run `cat` interactively And I type "hola" And I type "" Then the stdout should contain: """ hello world! """ And the stdout should contain: """ hola """ And the stderr should not contain anything ## [0.14.14] * Support Ruby 2.7 ([#677]) ## [0.14.13] * Loosen dependency on thor ([#676]) * Mark setting of `root_directory` as deprecated in documentation ([#571]) ## [0.14.12] * Loosen dependency on childprocess ([#673]) * Fix Travis build ([#668]) * Handle announcing with DebugProcess ([#664]) ## [0.14.11] * Loosen childprocess dependency ([#658]) * Do not set binmode on output temp files, so automatic line ending conversion works ([#650]) * Improve deprecation suggestions ([#647]) * Backport fixes to code organization, layout and spelling ([#645]) ## [0.14.10] * Backport replacement of problematic AnsiColor module with simple implementation ([#642]) * Undo preprecation of `#all_output`, `#all_stdout`, `#all_stderr` and `#in_current_directory` API methods, as well as of checking the combined output from all commands in cucumber steps ([#638]) * Warn when deprecated files `aruba/in_process` and `aruba/spawn_process` are required ([#639]) * Backport allowing decimal timeout values ([#621]) * Move deprecated cucumber steps into a separate file ([#622]) * Backport renaming of bin/cli in features ([#620]) * Improve build set for CI ([#611]) * Make JRuby before :command helper hook work on the environment the command will actually be run in ([#610], [#612]) * Reorganize spec files to match master branch ([#603]) * Reorganize feature files to match master branch ([#602]) ## [0.14.9] * Formally deprecate `#use_clean_gemset` ([#597]) * Improve deprecation messages ([#601]) * Do not replace entire environment inside `#cd` block ([#604]) ## [0.14.8] * Deprecate `#run` and `#run_simple` in favor of `#run_command` and `#run_command_and_stop` ([#585]) * Update dependencies, most notably loosening the dependency on `childprocess` ([#591]) * Properly warn about deprecated use of the run methods with one positional option ([#588]) ## [0.14.7] * Fix Cucumber steps to use `have_same_file_content_as` matcher ([#572]) * Update dependencies, most notably loosening the dependency on `ffi` ([#581]) ## [0.14.6] * Document and fix `@disable-bundler` hook ([#561]) * Deprecate `have_same_file_content_like` and `a_file_with_same_content_like` in favor of `have_same_file_content_as` and `a_file_with_same_content_as` ([#557]) ## [0.14.5] * Loosen dependency on child_process ([#551]) ## [0.14.4] * Fix command spawning when run in directories with spaces ([#490]) * Ensure setup is still done when using `@no-clobber` ([#529]) * Make `#expand_path` handle absolute paths correctly ([#486]) ## [0.14.3] * Fix path bug ([#422]) * Ensure non-deprecated methods do not use deprecated methods ([#489]) * Update dependency on childprocess ([#516]) * Fix encoding output on JRuby ([#516]) ## [0.14.2] * Handle empty `JRUBY_OPTS` on JRuby ## [0.14.1] * Fixed bug in framework step ## [0.14.0] * Add `/exe` to search path for commands: This is the new default if you setup a project with bundler. * Add some more steps to modify environment ## [0.13.0] * Add two new hooks for rspec and cucumber to make troubleshooting feature files easier ([#338]): * `command_content`: Outputs command content - helpful for scripts * `command_filesystem_status`: Outputs information like group, owner, mode, atime, mtime * Add generator to create ad hoc script file ([#323], [AdrieanKhisbe]) * Colored announcer output similar to the color of `cucumber` tags: cyan * Fixed bug in announcer. It announces infomation several times due to duplicate announce-calls. * Refactorings to internal `#simple_table`-method (internal) * Refactored Announcer, now it supports blocks for announce as well (internal) * Fix circular require warnings ([#339]) * Fix use of old instances variable `@io_wait` ([#341]). Now the default value for `io_wait_timeout` can be set correctly. * Make it possible to announce information on command error, using a new option called `activate_announcer_on_command_failure` ([#335], [njam]) * Re-integrate `event-bus`-library into `aruba`-core ([#342]) ## [0.12.0] * Add matcher to check if a command can be found in PATH ([#336]) * Fixed issue with environment variables set by external libraries ([#321], [#320]) ## [0.11.2] * Fixed problem with positional arguments in `#run_simple()` ([#322]) ## [0.11.1] * Use fixed version of event-bus * Refactored and improved documentation (feature tests) in [#309] ## [0.11.0] * Accidently pushed to rubygems.org - yanked it afterwards ## [0.11.0.pre4] * Fixed syntax for Hash on ruby 1.8.7 * Reorder rubies in .travis.yml ## [0.11.0.pre3] * Fixed syntax for proc on ruby 1.8.7 ## [0.11.0.pre2] * Integrate `EventBus` to decouple announcers from starting, stopping commands etc. This uses nearly the same implementation like `cucumber`. ([#309]) * Starting/Stopping a command directly (`command.start`, `command.stop`) is now reported to the command monitor and `last_command_stopped` is updated correctly * Added `#restart` to `Command` to make it possible to restart a command * Added check to prevent a command which has already been started, to be started again. Otherwise you've got hidden commands which are not stopped after a cucumber/rspec/minitest run. * Adding alot of documentation to `aruba` * Refactored `#run`: Now it wants you to pass a `Hash` containing the options. The old syntax is still supported, but is deprecated. * Added `#find_command` as experimental feature. It searches the started commands from last to first. * Added `be_an_executable` matcher ## [0.11.0.pre] * Set stop signal which should be used to stop a process after a timeout or used to terminate a process. This can be used to stop processes running docker + "systemd". If you send a systemd-enable container SIGINT it will be stopped. * Added a configurable amount of time after a command was started - `startup_wait_time`. Otherwise you get problems when a process takes to long to startup when you run in background and want to sent it a signal. * Replace `` in commandline, e.g. `` [experimental] * Added announce formatter for time spans, e.g. `startup_wait_time` * All process classes, e.g. `BasicProcess`, `SpawnProcess`, etc., are marked as private. Users should use `#run('cmd')` and not use the classes directly. * `rvm`-methods are deprecated. They are too ruby specific. ## [0.10.2] * Fixed problem in regex after merge of step definitions ## [0.10.1] * Merged remove steps for file and directory from 4 into 2 step definitions ## [0.10.0] * Fix `"#exit_timeout" is deprecated` error ([#314]) ## [0.10.0.pre2] * Take over code from `RSpec::Support::ObjectFormatter` since `rspec-support` is not intended for public use. ## [0.10.0.pre] * Add some new steps to make writing documentation easier using "cucumber", "rspec", "minitest" together with "aruba" - see [Feature](features/getting_started/supported_testing_frameworks.feature) for some examples * Write output of commands directly to disk if SpawnProcess is used (see [85d74fcc](https://github.com/cucumber/aruba/commit/85d74fcca4fff4e753776925d8b003cddaa8041d)) * Refactored API of cucumber steps to reduce the need for more methods and make it easier for users to write their own steps ([#306]) * Added `aruba init` to the cli command to setup environment for aruba (issue [#308]) * Added new method `delete_environment_variable` to remove environment variable * Added work around because of method name conflict between Capybara and RSpec ([1939c404](https://github.com/cucumber/aruba/commit/1939c4049d5195ffdd967485f50119bdd86e98a0)) ## [0.9.0] * Fix feature test * Fix ordering in console * Fix bug in console handling SIGINT * Deprecated Aruba/Reporting before we remove it ## [0.9.0.pre2] * Redefine `#to_s` and `#inspect` for BasicProcess to reduce the sheer amount of information, if a command produces a lot of output * Added new matcher `#all_objects` to check if an object is included + an error message for failures which is similar to the `#all`-matcher of `RSpec` * Add `have_output`-, `have_output_on_stderr`, `have_output_on_stdout`-matchers * Replace all `assert_*` and `check_*`-methods through expectations * Add hook `@announce-output` to output both, stderr and stdout * Add a lot of documentation ([#260]) * Replace `#last_command` through `#last_command_started` and `#last_command_stopped` to make it more explicit * Improve syntax highlighting in cucumber feature tests by adding programming language to `"""`-blocks * Rename tags `@ignore-*` to `@unsupported-on-*` * Introduce our own `BaseMatcher`-class to remove the dependency to `RSpec`'s private matcher APIs * Now we make the process started via `SpawnProcess` the leader of the group to kill all sub-processes more reliably ## [0.9.0.pre] * Improve documentation for filesystem api and move it to feature tests * Add logger to aruba. Its output can be captured by rspec. * Fix incorrect deprecation message for `check_file_presence` ([#292]) * Fix for Gemfile excludes windows for many gems ([#282]) * Make feature tests compatible with ruby 1.9.2 * Gather disk usage for file(s) ([#294]) * Replace `keep_ansi` config option by `remove_ansi_escape_sequences` option * Split up `#unescape` into `#extract_text` and `#unescape_text` * Use `UnixPlatform` and `WindowsPlatform` to make code for different platforms maintainable * Work around `ENV`-bug in JRuby by using `#dup` on `ENV.to_h` ([jruby/jruby#316]) * Speed up test on JRuby by using `--dev`-flag * Work around problems when copying files with `cp` on MRI-ruby 1.9.2 * Add `cmd.exe /c` for SpawnProcess on Windows ([#302]) * Split up `#which` for Windows and Unix/Linux ([#304]) * Add `aruba console` command to play around with aruba ([#305]) ## [0.8.1] * Fix problem if working directory of aruba does not exist ([#286]) * Re-add removed method `only_processes` * Fixed problem with last exit status * Added appveyor to run tests of aruba on Windows ([#287]) * Make the home directory configurable and use Around/around-hook to apply it * Add announcer to output the full environment before a command is run * Use `prepend_environment_variable` to modify PATH for rspec integration * Add `VERSION` constant to aruba and use it for code which should be activated on >= 1.0.0 ## [0.8.0] * Build with cucumber 1.3.x on ruby 1.8.7, with cucumber 2.x on all other platforms * Fixed bugs in aruba's cucumber steps * Disable use of `win32/file` * Fixed bug in `in_current_dir*` not returning the result of the block * Fixed checks for file content * Fixed selectors for DebugProcess and InProcess to support sub-classes as well ## [0.8.0.pre3] * Depend on cucumber 1.3.x for compatibility on ruby 1.8.7 * Change PWD and OLDPW when `cd('path') {}` is used within that block * Make nesting of `cd` possible * Make `run` inside `cd` possible * Fixed some bugs * Move `Aruba.proces = InProcess|SpawnProcess|DebugProcess` to `aruba.config` * Deprecate direct use of `InProcess|SpawnProcess|DebugProcess`. Now `Command` needs to be used * Add new configuration options `command_launcher` and `main_klass` for deprecation of old-style `Aruba.process = `, `:spawn` is the default value for the `command_launcher`-option * Added checks for version of `rspec-expectations` to support older `rspec` versions like `2.11` * Now each `path/to/dir` pushed to `aruba.current_directory` is `pop`ed as whole * Make testing of `aruba.current_directory` easier by supporting `end_with?` and `start_with?` ## [0.8.0.pre2] * Relax requirement on rspec-expectations (3.3 -> 2.11) ## [0.8.0.pre] * Make aruba compatible with "ruby 1.8.7" and "ruby 1.9.3" again ([#279]) * Move more and more documentation to cucumber steps ([#268]) * Refactoring of test suits, now rspec tests run randomly * Move Aruba constants to configuration class ([#271]) * Added runtime configuration via `aruba.config` which is reset for each test run * Refactored hooks: now there are `after()` and `before()`-hooks, old `before_cmd`-hook is still working, but is deprecated, added new `after(:command)`-hook. * Refactored jruby-startup helper * Cleanup API by moving deprecated methods to separate class * Cleanup Core API - reduced to `cd`, `expand_path`, `setup_aruba` and use `expand_path` wherever possible ([#253]) * Better isolation for environment variable manipulation - really helpful from 1.0.0 on * Move configuration files like `jruby.rb` to `aruba/config/`-directory * Change default exit timeout to 15 seconds to work around long running processes on travis * Use of instance variables like `@aruba_timeout_seconds` or `@aruba_io_wait_seconds` are deprecated. Use `Aruba.configure do |config| config.exit_timeout = 10` etc. for this. ## [0.7.4] * Really Fixed post install message ## [0.7.3] * Fixed post install message ## [0.7.2] * Do not trigger Announcer API deprecation warning ([#277]) ## [0.7.1] * Do not break if `@interactive` is used ## [0.7.0] * Introducing `root_directory` ([#232]) * Introducing fixtures directory ([#224]) * Make sure a file/directory does not exist + Cleanup named file/directory steps ([#234]) * Make matcher `have_permisions` public and add documentation ([#239]) * Added matcher for file content ([#238]) * Add rspec integrator ([#244]) * Deprecate `_file` and `_directory` in method names ([#243]) * Improve development environment ([#240]) * Cleanup process management ([#257]) * Make path content available through matchers and api metchods ([#250]) * Refactor announcer to support user defined announce channels (fixes [#267]) * `InProcess` requires that the working directory is determined on runtime not no loadtime ## [0.6.2] * Fixed minor [#223]) * Added support for ruby 2.1.3 -- 2.1.5 * Added support for comparison to a fixture file ## [0.6.1] * Added support for ruby 2.1.2 * Added support for `~` expansion * Added support for `with_env` ## [0.6.0] * Dropped support for ruby 1.8 * Added support for ruby 2.1.0 and 2.1.1 * Added rspec 3.0.0 support ## [0.5.4] * Added support for piping in files ([#154], [maxmeyer], dg-vrnetze) * Added cucumber steps for environment variables ([#156], dg-vrnetze) * Added support for file mode ([#157], [maxmeyer], dg-vrnetze) ## [0.5.3] * Fix for UTF-8 support ([#151], [mattwynne], [jarl-dk]) * Fix for open file leakage ([#150], [JonRowe]) ## [0.5.2] * Plugin API for greater speed. Test Ruby CLI programs in a single Ruby process ([#148], [aslakhellesoy]) * Fix memory leak when several commands are executed in a single run ([#144], [y-higuchi]) ## [0.5.1] * Individual timeout settings when running commands ([#124], [jarl-dk]) * Varous fixes for JRuby tests, should now work on more versions of JRuby ## [0.5.0] * Add `#with_file_content` to the DSL ([#110], [argent-smith]) * Make JRuby performance tweaks optional ([#102], [taylor], [#125], [alindeman]) * Add `assert_partial_output_interactive` so you can peek at the output from a running process ([#104], [taylor]) * Add `assert_not_matching_output` ([#111], [argent-smith]) * Add `remove_dir` ([#121], [LTe]) ## [0.4.11] * Fix duplicated output ([#91], [robertwahler], [mattwynne]) * Fix Gemspec format ([#101], [mattwynne]) ## [0.4.10] * Fix broken JRuby file following rename of hook ([tdreyno]) * Add terminate method to API ([taylor]) ## [0.4.9] * Rename `before_run` hook to `before_cmd` ([mattwynne]) * Fix 1.8.7 compatibility ([#95], [davetron5000]) ## [0.4.8] * Add `before_run` hook ([mattwynne]) * Add JRuby performance tweaks ([#93], [myronmarston], [mattwynne]) * Invalid/Corrupt spec file for 0.4.7 - undefined method call for nil:Nilclass ([#47], [aslakhellesoy]) ## [0.4.7] * Remove rdiscount dependency. ([#85], [aslakhellesoy]) * Pin to ffi 1.0.9 since 1.0.10 is broken. ([aslakhellesoy]) * Added file size specific steps to the Aruba API. ([#89], [hectcastro]) ## [0.4.6] * Upgraded deps to latest gems. ([aslakhellesoy]) * Added Regexp support to `Aruba::Api#assert_no_partial_output`. ([aslakhellesoy]) ## [0.4.5] * Better assertion failure message when an exit code is not as expected. ([mattwynne]) ## [0.4.4] * Fix various bugs with interative processes. ([mattwynne]) ## [0.4.3] * Aruba reporting now creates an index file for reports, linking them all together. ([aslakhellesoy]) ## [0.4.2] * Appending to a file creates the parent directory if it doesn't exist. ([aslakhellesoy]) ## [0.4.1] * Move more logic into Aruba::Api ([aslakhellesoy]) ## [0.4.0] * New, awesome HTML reporting feature that captures everything that happens during a scenario. ([aslakhellesoy]) * ANSI escapes from output are stripped by default. Override this with the @ansi tag. ([aslakhellesoy]) ## [0.3.7] * Make `Aruba::Api#get_process` return the last executed process with passed cmd ([greyblake]) * Replace announce with puts to comply with cucumber 0.10.6 ([aslakhellesoy]) * Fix childprocess STDIN to be synchronous ([#40], [#71], [lithium3141]) ## [0.3.6] * Changed default value of `@aruba_timeout_seconds` from 1 to 3. ([aslakhellesoy]) * Separate hooks and steps to make it easier to build your own steps on top of Aruba's API ([msassak]) * `@no-clobber` to prevent cleanup before each scenario ([msassak]) ## [0.3.5] * Store processes in an array to ensure order of operations on Ruby 1.8.x ([#48] [msassak]) ## [0.3.4] * Use backticks (\`) instead of quotes (") to specify command line. Quote still works, but is deprecated. ([aeden], [aslakhellesoy]) ## [0.3.3] * Updated RSpec development requirement to 2.5 ([rspeicher], [msassak], [aslakhellesoy]) * Updated RubyGems dependency to 1.6.1 ([rspeicher]) ## [0.3.2] * Wrong number of args in the When I overwrite step ([aslakhellesoy]) ## [0.3.1] * Broken 0.3.0 release ([#43], [#44], [msassak]) * Quotes (") and newline (\n) in step arguments are no longer unescaped. ([aslakhellesoy]) ## [0.3.0] * Remove latency introduced in the 0.2.8 release ([#42], [msassak]) * New stepdef `Then /^the stdout should contain:$/ do |partial_output|` ([aslakhellesoy]) * Quotes (") and newline (\n) in step arguments no longer need to be backslash-escaped. ([aslakhellesoy]) ## [0.2.8] * Replaced `background_process` with `childprocess`, a cross-platform process control library. This will allow Aruba to run on Windows and JRuby in addition to \*nix MRI. ([#16], [#27], [#31], [msassak], [jarib], [mattwynne], [aknuds1]) ## [0.2.7] * Upgrade to Cucumber 0.10.0. ([aslakhellesoy]) * `require 'aruba'` does nothing - you have to `require 'aruba/cucumber'` now. This is to prevent bundler from loading it when we don't want to. ([aslakhellesoy]) * Outputting a lot of data causes process to time out ([#30], [msassak]) ## [0.2.6] * You can set `@aruba_timeout_seconds` in a Before hook to tell Aruba to wait for a process to complete. Default: 1 second. ([aslakhellesoy]) * Fixed small bug in `/^the stdout should contain exactly:$/` ([aslakhellesoy]) ## [0.2.5] * Added 'a file named "whatever" should (not) exist' ([rspeicher]) * Added 'a directory named "whatever" should (not) exist' ([rspeicher]) * Added /^the stderr should contain exactly:"$/ ([aslakhellesoy]) * Added /^the stdout should contain exactly:"$/ ([aslakhellesoy]) * Added /it should pass with exactly:/ ([aslakhellesoy]) * @announce, @announce-dir and @announce-cmd for interactive processes ([msassak]) * Add step defs for detecting output, stdout and stderr by process name ([msassak]) * Stop all processes before verifying filesystem changes to ensure async operations are complete ([#17], [msassak]) * Outputting large amounts of data causes run steps to hang ([#18], [msassak]) ## [0.2.4] * Added step definitions for removing files and checking presence of a single file. ([aslakhellesoy]) ## [0.2.3] * Directory should not exist gives false-positive ([#13], [#15], [nruth]) * Added step definitions for comparing file contents with regexps ([#9], [aslakhellesoy]) * Always put ./bin at the beginning of $PATH to make it easier to run own executables ([#7], [aslakhellesoy]) * Communication with interactive processes ([#4], [msassak]) * Remove hyphens separating stdout and stderr ([aknuds1]) ## [0.2.2] * Added a @bin tag that sets up './bin' first on the path ([aslakhellesoy]) * Richer API making aruba easier to use from Ruby code. (Mark Nijhof, [aslakhellesoy]) * No more support for RVM. Use rvm 1.9.2,1.8.7 exec cucumber .... instead. (Mark Nijhof, [aslakhellesoy]) ## [0.2.1] * Always compare with RSpec should =~ instead of should match. This gives a diff when there is no match. ([aslakhellesoy]) ## [0.2.0] * Added aruba.gemspec. ([dchelimsky]) * Several step definitions regarding output have changed. ([#1], [aslakhellesoy]) - /^I should see "([^\"]*)"$/ + /^the output should contain "([^"]*)"$/ - /^I should not see "([^\"]*)"$/ + /^the output should not contain "([^"]*)"$/ - /^I should see:$/ + /^the output should contain:$/ - /^I should not see:$/ + /^the output should not contain:$/ - /^I should see exactly "([^\"]*)"$/ + /^the output should contain exactly "([^"]*)"$/ - /^I should see exactly:$/ + /^the output should contain exactly:$/ - /^I should see matching \/([^\/]*)\/$/ + /^the output should match \/([^\/]*)\/$/ - /^I should see matching:$/ + /^the output should match:$/ ## [0.1.9] * If the GOTGEMS environment variable is set, bundler won't run (faster). ([aslakhellesoy]) ## [0.1.8] * Use // instead of "" for "I should see matching" step. ([aslakhellesoy]) * Replace rvm gemset character '%' with '@' for rvm 0.1.24 ([#5], Ashley Moran) * Support gem bundler, making it easier to specify gems. ([aslakhellesoy]) ## [0.1.7] * New @announce-stderr tag ([robertwahler]) * New "I should see matching" steps using Regexp ([robertwahler]) ## [0.1.6] * `When /^I successfully run "(.*)"$/` now prints the combined output if exit status is not 0. ([aslakhellesoy]) * Add bundle to list of common ruby scripts. ([aslakhellesoy]) ## [0.1.5] * Added ability to map rvm versions to a specific version with config/aruba-rvm.yml. ([aslakhellesoy]) * Check for presence of files. ([aslakhellesoy]) * Allow specification of rvm gemsets. ([aslakhellesoy]) * Detect ruby commands and use current ruby when rvm is not explicitly used. ([aslakhellesoy]) * Added support for rvm, making it possible to choose Ruby interpreter. ([aslakhellesoy]) * Added @announce-cmd, @announce-stdout and @announce tags, useful for seeing what's executed and outputted. ([aslakhellesoy]) ## [0.1.4] * New step definition for appending to a file ([aslakhellesoy]) ## [0.1.3] * New step definition for cd (change directory) ([aslakhellesoy]) ## [0.1.2] * Separated API from Cucumber step definitions, makes this usable without Cucumber. ([aslakhellesoy]) ## [0.1.1] * Better Regexp escaping ([dchelimsky]) ## [0.1.0] * First release ([dchelimsky] and [aslakhellesoy]) [AdrieanKhisbe]: https://github.com/AdrieanKhisbe [Heinrich]: https://github.com/Heinrich [JonRowe]: https://github.com/JonRowe [LTe]: https://github.com/LTe [aeden]: https://github.com/aeden [aknuds1]: https://github.com/aknuds1 [alindeman]: https://github.com/alindeman [amatsuda]: https://github.com/amatsuda [argent-smith]: https://github.com/argent-smith [aslakhellesoy]: https://github.com/aslakhellesoy [cllns]: https://github.com/cllns [davetron5000]: https://github.com/davetron5000 [dchelimsky]: https://github.com/dchelimsky [deivid-rodriguez]: https://github.com/deivid-rodriguez [doudou]: https://github.com/doudou [e2]: https://github.com/e2 [greyblake]: https://github.com/greyblake [grosser]: https://github.com/grosser [hectcastro]: https://github.com/hectcastro [jarib]: https://github.com/jarib [jarl-dk]: https://github.com/jarl-dk [jaysonesmith]: https://github.com/jaysonesmith [junaruga]: https://github.com/junaruga [koic]: https://github.com/koic [lithium3141]: https://github.com/lithium3141 [luke-hill]: https://github.com/luke-hill [mattwynne]: https://github.com/mattwynne [maxmeyer]: https://github.com/maxmeyer [msassak]: https://github.com/msassak [mvz]: https://github.com/mvz [myronmarston]: https://github.com/myronmarston [nicolasleger]: https://github.com/nicolasleger [njam]: https://github.com/njam [nruth]: https://github.com/nruth [olleolleolle]: https://github.com/olleolleolle [richardxia]: https://github.com/richardxia [robertwahler]: https://github.com/robertwahler [roschaefer]: https://github.com/roschaefer [rspeicher]: https://github.com/rspeicher [rubbish]: https://github.com/rubbish [scottj97]: https://github.com/scottj97 [stamhankar999]: https://github.com/stamhankar999 [taylor]: https://github.com/taylor [utkarsh2102]: https://github.com/utkarsh2102 [tdreyno]: https://github.com/tdreyno [xtrasimplicity]: https://github.com/xtrasimplicity [y-higuchi]: https://github.com/y-higuchi [#727]: https://github.com/cucumber/aruba/pull/727 [#725]: https://github.com/cucumber/aruba/pull/725 [#724]: https://github.com/cucumber/aruba/pull/724 [#721]: https://github.com/cucumber/aruba/pull/721 [#719]: https://github.com/cucumber/aruba/pull/719 [#717]: https://github.com/cucumber/aruba/pull/717 [#715]: https://github.com/cucumber/aruba/pull/715 [#712]: https://github.com/cucumber/aruba/pull/712 [#711]: https://github.com/cucumber/aruba/pull/711 [#710]: https://github.com/cucumber/aruba/pull/710 [#709]: https://github.com/cucumber/aruba/pull/709 [#708]: https://github.com/cucumber/aruba/pull/708 [#707]: https://github.com/cucumber/aruba/pull/707 [#704]: https://github.com/cucumber/aruba/pull/704 [#703]: https://github.com/cucumber/aruba/pull/703 [#702]: https://github.com/cucumber/aruba/pull/702 [#701]: https://github.com/cucumber/aruba/pull/701 [#698]: https://github.com/cucumber/aruba/pull/698 [#696]: https://github.com/cucumber/aruba/pull/696 [#693]: https://github.com/cucumber/aruba/pull/693 [#692]: https://github.com/cucumber/aruba/pull/692 [#690]: https://github.com/cucumber/aruba/pull/690 [#689]: https://github.com/cucumber/aruba/pull/689 [#688]: https://github.com/cucumber/aruba/pull/688 [#687]: https://github.com/cucumber/aruba/pull/687 [#686]: https://github.com/cucumber/aruba/pull/686 [#683]: https://github.com/cucumber/aruba/pull/683 [#679]: https://github.com/cucumber/aruba/pull/679 [#677]: https://github.com/cucumber/aruba/pull/677 [#676]: https://github.com/cucumber/aruba/pull/676 [#675]: https://github.com/cucumber/aruba/pull/675 [#674]: https://github.com/cucumber/aruba/pull/674 [#673]: https://github.com/cucumber/aruba/pull/673 [#672]: https://github.com/cucumber/aruba/pull/672 [#671]: https://github.com/cucumber/aruba/pull/671 [#669]: https://github.com/cucumber/aruba/pull/669 [#668]: https://github.com/cucumber/aruba/pull/668 [#666]: https://github.com/cucumber/aruba/pull/666 [#665]: https://github.com/cucumber/aruba/pull/665 [#664]: https://github.com/cucumber/aruba/pull/664 [#663]: https://github.com/cucumber/aruba/pull/663 [#660]: https://github.com/cucumber/aruba/pull/660 [#659]: https://github.com/cucumber/aruba/pull/659 [#658]: https://github.com/cucumber/aruba/pull/658 [#657]: https://github.com/cucumber/aruba/pull/657 [#656]: https://github.com/cucumber/aruba/pull/656 [#655]: https://github.com/cucumber/aruba/pull/655 [#654]: https://github.com/cucumber/aruba/pull/654 [#652]: https://github.com/cucumber/aruba/pull/652 [#650]: https://github.com/cucumber/aruba/pull/650 [#647]: https://github.com/cucumber/aruba/pull/647 [#645]: https://github.com/cucumber/aruba/pull/645 [#644]: https://github.com/cucumber/aruba/pull/644 [#643]: https://github.com/cucumber/aruba/pull/643 [#642]: https://github.com/cucumber/aruba/pull/642 [#639]: https://github.com/cucumber/aruba/pull/639 [#638]: https://github.com/cucumber/aruba/pull/638 [#637]: https://github.com/cucumber/aruba/pull/637 [#636]: https://github.com/cucumber/aruba/pull/636 [#635]: https://github.com/cucumber/aruba/pull/635 [#631]: https://github.com/cucumber/aruba/pull/631 [#629]: https://github.com/cucumber/aruba/pull/629 [#628]: https://github.com/cucumber/aruba/pull/628 [#626]: https://github.com/cucumber/aruba/pull/626 [#623]: https://github.com/cucumber/aruba/pull/623 [#622]: https://github.com/cucumber/aruba/pull/622 [#621]: https://github.com/cucumber/aruba/pull/621 [#620]: https://github.com/cucumber/aruba/pull/620 [#618]: https://github.com/cucumber/aruba/pull/618 [#616]: https://github.com/cucumber/aruba/pull/616 [#615]: https://github.com/cucumber/aruba/pull/615 [#613]: https://github.com/cucumber/aruba/pull/613 [#612]: https://github.com/cucumber/aruba/pull/612 [#611]: https://github.com/cucumber/aruba/pull/611 [#610]: https://github.com/cucumber/aruba/pull/610 [#607]: https://github.com/cucumber/aruba/pull/607 [#606]: https://github.com/cucumber/aruba/pull/606 [#604]: https://github.com/cucumber/aruba/pull/604 [#603]: https://github.com/cucumber/aruba/pull/603 [#602]: https://github.com/cucumber/aruba/pull/602 [#601]: https://github.com/cucumber/aruba/pull/601 [#597]: https://github.com/cucumber/aruba/pull/597 [#596]: https://github.com/cucumber/aruba/pull/596 [#594]: https://github.com/cucumber/aruba/pull/594 [#593]: https://github.com/cucumber/aruba/pull/593 [#591]: https://github.com/cucumber/aruba/pull/591 [#588]: https://github.com/cucumber/aruba/pull/588 [#587]: https://github.com/cucumber/aruba/pull/587 [#585]: https://github.com/cucumber/aruba/pull/585 [#584]: https://github.com/cucumber/aruba/pull/584 [#583]: https://github.com/cucumber/aruba/pull/583 [#582]: https://github.com/cucumber/aruba/pull/582 [#581]: https://github.com/cucumber/aruba/pull/581 [#580]: https://github.com/cucumber/aruba/pull/580 [#578]: https://github.com/cucumber/aruba/pull/578 [#575]: https://github.com/cucumber/aruba/pull/575 [#572]: https://github.com/cucumber/aruba/pull/572 [#571]: https://github.com/cucumber/aruba/pull/571 [#570]: https://github.com/cucumber/aruba/pull/570 [#562]: https://github.com/cucumber/aruba/pull/562 [#561]: https://github.com/cucumber/aruba/pull/561 [#560]: https://github.com/cucumber/aruba/pull/560 [#557]: https://github.com/cucumber/aruba/pull/557 [#555]: https://github.com/cucumber/aruba/pull/555 [#554]: https://github.com/cucumber/aruba/pull/554 [#553]: https://github.com/cucumber/aruba/pull/553 [#551]: https://github.com/cucumber/aruba/pull/551 [#548]: https://github.com/cucumber/aruba/pull/548 [#546]: https://github.com/cucumber/aruba/pull/546 [#544]: https://github.com/cucumber/aruba/pull/544 [#543]: https://github.com/cucumber/aruba/pull/543 [#542]: https://github.com/cucumber/aruba/pull/542 [#541]: https://github.com/cucumber/aruba/pull/541 [#540]: https://github.com/cucumber/aruba/pull/540 [#537]: https://github.com/cucumber/aruba/pull/537 [#536]: https://github.com/cucumber/aruba/pull/536 [#535]: https://github.com/cucumber/aruba/pull/535 [#532]: https://github.com/cucumber/aruba/pull/532 [#530]: https://github.com/cucumber/aruba/pull/530 [#529]: https://github.com/cucumber/aruba/pull/529 [#528]: https://github.com/cucumber/aruba/pull/528 [#523]: https://github.com/cucumber/aruba/pull/523 [#522]: https://github.com/cucumber/aruba/pull/522 [#520]: https://github.com/cucumber/aruba/pull/520 [#517]: https://github.com/cucumber/aruba/pull/517 [#516]: https://github.com/cucumber/aruba/pull/516 [#515]: https://github.com/cucumber/aruba/pull/515 [#514]: https://github.com/cucumber/aruba/pull/514 [#512]: https://github.com/cucumber/aruba/pull/512 [#511]: https://github.com/cucumber/aruba/pull/511 [#510]: https://github.com/cucumber/aruba/pull/510 [#509]: https://github.com/cucumber/aruba/pull/509 [#508]: https://github.com/cucumber/aruba/pull/508 [#507]: https://github.com/cucumber/aruba/pull/507 [#504]: https://github.com/cucumber/aruba/pull/504 [#498]: https://github.com/cucumber/aruba/pull/498 [#497]: https://github.com/cucumber/aruba/pull/497 [#495]: https://github.com/cucumber/aruba/pull/495 [#494]: https://github.com/cucumber/aruba/pull/494 [#493]: https://github.com/cucumber/aruba/pull/493 [#491]: https://github.com/cucumber/aruba/pull/491 [#490]: https://github.com/cucumber/aruba/pull/490 [#489]: https://github.com/cucumber/aruba/pull/489 [#488]: https://github.com/cucumber/aruba/pull/488 [#487]: https://github.com/cucumber/aruba/pull/487 [#486]: https://github.com/cucumber/aruba/pull/486 [#483]: https://github.com/cucumber/aruba/pull/483 [#482]: https://github.com/cucumber/aruba/pull/482 [#481]: https://github.com/cucumber/aruba/pull/481 [#476]: https://github.com/cucumber/aruba/pull/476 [#475]: https://github.com/cucumber/aruba/pull/475 [#471]: https://github.com/cucumber/aruba/pull/471 [#466]: https://github.com/cucumber/aruba/pull/466 [#464]: https://github.com/cucumber/aruba/pull/464 [#462]: https://github.com/cucumber/aruba/pull/462 [#461]: https://github.com/cucumber/aruba/pull/461 [#460]: https://github.com/cucumber/aruba/pull/460 [#459]: https://github.com/cucumber/aruba/pull/459 [#457]: https://github.com/cucumber/aruba/pull/457 [#456]: https://github.com/cucumber/aruba/pull/456 [#454]: https://github.com/cucumber/aruba/pull/454 [#452]: https://github.com/cucumber/aruba/pull/452 [#451]: https://github.com/cucumber/aruba/issues/451 [#449]: https://github.com/cucumber/aruba/issues/449 [#447]: https://github.com/cucumber/aruba/issues/447 [#445]: https://github.com/cucumber/aruba/issues/445 [#444]: https://github.com/cucumber/aruba/issues/444 [#442]: https://github.com/cucumber/aruba/issues/442 [#439]: https://github.com/cucumber/aruba/issues/439 [#438]: https://github.com/cucumber/aruba/issues/438 [#436]: https://github.com/cucumber/aruba/issues/436 [#433]: https://github.com/cucumber/aruba/issues/433 [#427]: https://github.com/cucumber/aruba/issues/427 [#422]: https://github.com/cucumber/aruba/issues/422 [#398]: https://github.com/cucumber/aruba/issues/398 [#390]: https://github.com/cucumber/aruba/issues/390 [#389]: https://github.com/cucumber/aruba/issues/389 [#388]: https://github.com/cucumber/aruba/issues/388 [#387]: https://github.com/cucumber/aruba/issues/387 [#385]: https://github.com/cucumber/aruba/issues/385 [#382]: https://github.com/cucumber/aruba/issues/382 [#376]: https://github.com/cucumber/aruba/issues/376 [#375]: https://github.com/cucumber/aruba/issues/375 [#372]: https://github.com/cucumber/aruba/issues/372 [#366]: https://github.com/cucumber/aruba/issues/366 [#359]: https://github.com/cucumber/aruba/issues/359 [#358]: https://github.com/cucumber/aruba/issues/358 [#357]: https://github.com/cucumber/aruba/issues/357 [#353]: https://github.com/cucumber/aruba/issues/353 [#352]: https://github.com/cucumber/aruba/issues/352 [#349]: https://github.com/cucumber/aruba/issues/349 [#347]: https://github.com/cucumber/aruba/issues/347 [#342]: https://github.com/cucumber/aruba/issues/342 [#341]: https://github.com/cucumber/aruba/issues/341 [#339]: https://github.com/cucumber/aruba/issues/339 [#338]: https://github.com/cucumber/aruba/issues/338 [#336]: https://github.com/cucumber/aruba/issues/336 [#335]: https://github.com/cucumber/aruba/issues/335 [#323]: https://github.com/cucumber/aruba/issues/323 [#322]: https://github.com/cucumber/aruba/issues/322 [#321]: https://github.com/cucumber/aruba/issues/321 [#320]: https://github.com/cucumber/aruba/issues/320 [#314]: https://github.com/cucumber/aruba/issues/314 [#309]: https://github.com/cucumber/aruba/issues/309 [#308]: https://github.com/cucumber/aruba/issues/308 [#306]: https://github.com/cucumber/aruba/issues/306 [#305]: https://github.com/cucumber/aruba/issues/305 [#304]: https://github.com/cucumber/aruba/issues/304 [#302]: https://github.com/cucumber/aruba/issues/302 [#294]: https://github.com/cucumber/aruba/issues/294 [#292]: https://github.com/cucumber/aruba/issues/292 [#287]: https://github.com/cucumber/aruba/issues/287 [#286]: https://github.com/cucumber/aruba/issues/286 [#282]: https://github.com/cucumber/aruba/issues/282 [#279]: https://github.com/cucumber/aruba/issues/279 [#277]: https://github.com/cucumber/aruba/issues/277 [#271]: https://github.com/cucumber/aruba/issues/271 [#268]: https://github.com/cucumber/aruba/issues/268 [#267]: https://github.com/cucumber/aruba/issues/267 [#260]: https://github.com/cucumber/aruba/issues/260 [#257]: https://github.com/cucumber/aruba/issues/257 [#253]: https://github.com/cucumber/aruba/issues/253 [#250]: https://github.com/cucumber/aruba/issues/250 [#244]: https://github.com/cucumber/aruba/issues/244 [#243]: https://github.com/cucumber/aruba/issues/243 [#240]: https://github.com/cucumber/aruba/issues/240 [#239]: https://github.com/cucumber/aruba/issues/239 [#238]: https://github.com/cucumber/aruba/issues/238 [#234]: https://github.com/cucumber/aruba/issues/234 [#232]: https://github.com/cucumber/aruba/issues/232 [#224]: https://github.com/cucumber/aruba/issues/224 [#223]: https://github.com/cucumber/aruba/issues/223 [#157]: https://github.com/cucumber/aruba/issues/157 [#156]: https://github.com/cucumber/aruba/issues/156 [#154]: https://github.com/cucumber/aruba/issues/154 [#151]: https://github.com/cucumber/aruba/issues/151 [#150]: https://github.com/cucumber/aruba/issues/150 [#148]: https://github.com/cucumber/aruba/issues/148 [#144]: https://github.com/cucumber/aruba/issues/144 [#125]: https://github.com/cucumber/aruba/issues/125 [#124]: https://github.com/cucumber/aruba/issues/124 [#121]: https://github.com/cucumber/aruba/issues/121 [#111]: https://github.com/cucumber/aruba/issues/111 [#110]: https://github.com/cucumber/aruba/issues/110 [#104]: https://github.com/cucumber/aruba/issues/104 [#102]: https://github.com/cucumber/aruba/issues/102 [#101]: https://github.com/cucumber/aruba/issues/101 [#95]: https://github.com/cucumber/aruba/issues/95 [#93]: https://github.com/cucumber/aruba/issues/93 [#91]: https://github.com/cucumber/aruba/issues/91 [#89]: https://github.com/cucumber/aruba/issues/89 [#85]: https://github.com/cucumber/aruba/issues/85 [#71]: https://github.com/cucumber/aruba/issues/71 [#48]: https://github.com/cucumber/aruba/issues/48 [#47]: https://github.com/cucumber/aruba/issues/47 [#44]: https://github.com/cucumber/aruba/issues/44 [#43]: https://github.com/cucumber/aruba/issues/43 [#42]: https://github.com/cucumber/aruba/issues/42 [#40]: https://github.com/cucumber/aruba/issues/40 [#31]: https://github.com/cucumber/aruba/issues/31 [#30]: https://github.com/cucumber/aruba/issues/30 [#27]: https://github.com/cucumber/aruba/issues/27 [#18]: https://github.com/cucumber/aruba/issues/18 [#17]: https://github.com/cucumber/aruba/issues/17 [#16]: https://github.com/cucumber/aruba/issues/16 [#15]: https://github.com/cucumber/aruba/issues/15 [#13]: https://github.com/cucumber/aruba/issues/13 [#9]: https://github.com/cucumber/aruba/issues/9 [#7]: https://github.com/cucumber/aruba/issues/7 [#5]: https://github.com/cucumber/aruba/issues/5 [#4]: https://github.com/cucumber/aruba/issues/4 [#1]: https://github.com/cucumber/aruba/issues/1 [cucumber/cucumber#521]: https://github.com/cucumber/cucumber/issues/521 [jruby/jruby#316]: https://github.com/jruby/jruby/issues/316 [Unreleased]: https://github.com/cucumber/aruba/compare/v1.0.3...master [1.0.3]: https://github.com/cucumber/aruba/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/cucumber/aruba/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/cucumber/aruba/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/cucumber/aruba/compare/v1.0.0.pre.alpha.5...v1.0.0 [1.0.0.pre.alpha.5]: https://github.com/cucumber/aruba/compare/v1.0.0.pre.alpha.4...v1.0.0.pre.alpha.5 [1.0.0.pre.alpha.4]: https://github.com/cucumber/aruba/compare/v1.0.0.pre.alpha.3...v1.0.0.pre.alpha.4 [1.0.0.pre.alpha.3]: https://github.com/cucumber/aruba/compare/v1.0.0.pre.alpha.2...v1.0.0.pre.alpha.3 [1.0.0.pre.alpha.2]: https://github.com/cucumber/aruba/compare/v1.0.0.pre.alpha.1...v1.0.0.pre.alpha.2 [1.0.0.pre.alpha.1]: https://github.com/cucumber/aruba/compare/v0.14.1...v1.0.0.pre.alpha.1 [0.14.14]: https://github.com/cucumber/aruba/compare/v0.14.13...v0.14.14 [0.14.13]: https://github.com/cucumber/aruba/compare/v0.14.12...v0.14.13 [0.14.12]: https://github.com/cucumber/aruba/compare/v0.14.11...v0.14.12 [0.14.11]: https://github.com/cucumber/aruba/compare/v0.14.10...v0.14.11 [0.14.10]: https://github.com/cucumber/aruba/compare/v0.14.9...v0.14.10 [0.14.9]: https://github.com/cucumber/aruba/compare/v0.14.8...v0.14.9 [0.14.8]: https://github.com/cucumber/aruba/compare/v0.14.7...v0.14.8 [0.14.7]: https://github.com/cucumber/aruba/compare/v0.14.6...v0.14.7 [0.14.6]: https://github.com/cucumber/aruba/compare/v0.14.5...v0.14.6 [0.14.5]: https://github.com/cucumber/aruba/compare/v0.14.4...v0.14.5 [0.14.4]: https://github.com/cucumber/aruba/compare/v0.14.3...v0.14.4 [0.14.3]: https://github.com/cucumber/aruba/compare/v0.14.2...v0.14.3 [0.14.2]: https://github.com/cucumber/aruba/compare/v0.14.1...v0.14.2 [0.14.1]: https://github.com/cucumber/aruba/compare/v0.14.0...v0.14.1 [0.14.0]: https://github.com/cucumber/aruba/compare/v0.13.0...v0.14.0 [0.13.0]: https://github.com/cucumber/aruba/compare/v0.12.0...v0.13.0 [0.12.0]: https://github.com/cucumber/aruba/compare/v0.11.2...v0.12.0 [0.11.2]: https://github.com/cucumber/aruba/compare/v0.11.1...v0.11.2 [0.11.1]: https://github.com/cucumber/aruba/compare/v0.11.0...v0.11.1 [0.11.0]: https://github.com/cucumber/aruba/compare/v0.11.0.pre4...v0.11.0 [0.11.0.pre4]: https://github.com/cucumber/aruba/compare/v0.11.0.pre3...v0.11.0.pre4 [0.11.0.pre3]: https://github.com/cucumber/aruba/compare/v0.11.0.pre2...v0.11.0.pre3 [0.11.0.pre2]: https://github.com/cucumber/aruba/compare/v0.11.0.pre...v0.11.0.pre2 [0.11.0.pre]: https://github.com/cucumber/aruba/compare/v0.10.2...v0.11.0.pre [0.10.2]: https://github.com/cucumber/aruba/compare/v0.10.1...v0.10.2 [0.10.1]: https://github.com/cucumber/aruba/compare/v0.10.0...v0.10.1 [0.10.0]: https://github.com/cucumber/aruba/compare/v0.10.0.pre2...v0.10.0 [0.10.0.pre2]: https://github.com/cucumber/aruba/compare/v0.10.0.pre...v0.10.0.pre2 [0.10.0.pre]: https://github.com/cucumber/aruba/compare/v0.9.0...v0.10.0 [0.9.0]: https://github.com/cucumber/aruba/compare/v0.9.0.pre2...v0.9.0 [0.9.0.pre2]: https://github.com/cucumber/aruba/compare/v0.9.0.pre...v0.9.0.pre2 [0.9.0.pre]: https://github.com/cucumber/aruba/compare/v0.8.1...v0.9.0.pre [0.8.1]: https://github.com/cucumber/aruba/compare/v0.8.0...v0.8.1 [0.8.0]: https://github.com/cucumber/aruba/compare/v0.8.0.pre3...v0.8.0 [0.8.0.pre3]: https://github.com/cucumber/aruba/compare/v0.8.0.pre2...v0.8.0.pre3 [0.8.0.pre2]: https://github.com/cucumber/aruba/compare/v0.8.0...v0.8.0.pre2 [0.8.0.pre]: https://github.com/cucumber/aruba/compare/v0.7.4...v0.8.0.pre [0.7.4]: https://github.com/cucumber/aruba/compare/v0.7.2...v0.7.4 [0.7.3]: https://github.com/cucumber/aruba/compare/v0.7.2...v0.7.3 [0.7.2]: https://github.com/cucumber/aruba/compare/v0.7.1...v0.7.2 [0.7.1]: https://github.com/cucumber/aruba/compare/v0.7.0...v0.7.1 [0.7.0]: https://github.com/cucumber/aruba/compare/v0.6.2...v0.7.0 [0.6.2]: https://github.com/cucumber/aruba/compare/v0.6.1...v0.6.2 [0.6.1]: https://github.com/cucumber/aruba/compare/v0.6.0...v0.6.1 [0.6.0]: https://github.com/cucumber/aruba/compare/v0.5.4...v0.6.0 [0.5.4]: https://github.com/cucumber/aruba/compare/v0.5.3...v0.5.4 [0.5.3]: https://github.com/cucumber/aruba/compare/v0.5.2...v0.5.3 [0.5.2]: https://github.com/cucumber/aruba/compare/v0.5.1...v0.5.2 [0.5.1]: https://github.com/cucumber/aruba/compare/v0.5.0...v0.5.1 [0.5.0]: https://github.com/cucumber/aruba/compare/v0.4.10...v0.5.0 [0.4.11]: https://github.com/cucumber/aruba/compare/v0.4.10...v0.4.11 [0.4.10]: https://github.com/cucumber/aruba/compare/v0.4.9...v0.4.10 [0.4.9]: https://github.com/cucumber/aruba/compare/v0.4.8...v0.4.9 [0.4.8]: https://github.com/cucumber/aruba/compare/v0.4.7...v0.4.8 [0.4.7]: https://github.com/cucumber/aruba/compare/v0.4.6...v0.4.7 [0.4.6]: https://github.com/cucumber/aruba/compare/v0.4.5...v0.4.6 [0.4.5]: https://github.com/cucumber/aruba/compare/v0.4.4...v0.4.5 [0.4.4]: https://github.com/cucumber/aruba/compare/v0.4.3...v0.4.4 [0.4.3]: https://github.com/cucumber/aruba/compare/v0.4.2...v0.4.3 [0.4.2]: https://github.com/cucumber/aruba/compare/v0.4.1...v0.4.2 [0.4.1]: https://github.com/cucumber/aruba/compare/v0.4.0...v0.4.1 [0.4.0]: https://github.com/cucumber/aruba/compare/v0.3.7...v0.4.0 [0.3.7]: https://github.com/cucumber/aruba/compare/v0.3.6...v0.3.7 [0.3.6]: https://github.com/cucumber/aruba/compare/v0.3.5...v0.3.6 [0.3.5]: https://github.com/cucumber/aruba/compare/v0.3.4...v0.3.5 [0.3.4]: https://github.com/cucumber/aruba/compare/v0.3.3...v0.3.4 [0.3.3]: https://github.com/cucumber/aruba/compare/v0.3.2...v0.3.3 [0.3.2]: https://github.com/cucumber/aruba/compare/v0.3.1...v0.3.2 [0.3.1]: https://github.com/cucumber/aruba/compare/v0.3.0...v0.3.1 [0.3.0]: https://github.com/cucumber/aruba/compare/v0.2.8...v0.3.0 [0.2.8]: https://github.com/cucumber/aruba/compare/v0.2.7...v0.2.8 [0.2.7]: https://github.com/cucumber/aruba/compare/v0.2.6...v0.2.7 [0.2.6]: https://github.com/cucumber/aruba/compare/v0.2.5...v0.2.6 [0.2.5]: https://github.com/cucumber/aruba/compare/v0.2.4...v0.2.5 [0.2.4]: https://github.com/cucumber/aruba/compare/v0.2.3...v0.2.4 [0.2.3]: https://github.com/cucumber/aruba/compare/v0.2.2...v0.2.3 [0.2.2]: https://github.com/cucumber/aruba/compare/v0.2.1...v0.2.2 [0.2.1]: https://github.com/cucumber/aruba/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/cucumber/aruba/compare/v0.1.9...v0.2.0 [0.1.9]: https://github.com/cucumber/aruba/compare/v0.1.8...v0.1.9 [0.1.8]: https://github.com/cucumber/aruba/compare/v0.1.7...v0.1.8 [0.1.7]: https://github.com/cucumber/aruba/compare/v0.1.6...v0.1.7 [0.1.6]: https://github.com/cucumber/aruba/compare/v0.1.5...v0.1.6 [0.1.5]: https://github.com/cucumber/aruba/compare/v0.1.4...v0.1.5 [0.1.4]: https://github.com/cucumber/aruba/compare/v0.1.3...v0.1.4 [0.1.3]: https://github.com/cucumber/aruba/compare/v0.1.2...v0.1.3 [0.1.2]: https://github.com/cucumber/aruba/compare/v0.1.1...v0.1.2 [0.1.1]: https://github.com/cucumber/aruba/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/cucumber/aruba/compare/ed6a175d23aaff62dbf355706996f276f304ae8b...v0.1.1 [1]: http://semver.org [2]: http://keepachangelog.com [3]: https://github.com/cucumber/aruba/blob/master/CONTRIBUTING.md ruby-aruba-1.0.4/CONTRIBUTING.md000066400000000000000000000203001377453476700160400ustar00rootroot00000000000000# Contributing to the Cucumber Aruba Project ## Introduction We would love to get help from you as a **user** and a **contributor**. ### As a **User** * Tell us how "Aruba" works for you * Spread the word if you like our work and please tell us if something is (utterly) wrong * Encourage people in testing their code and keep communicating their needs ### As a **Contributor** * Send us bug fixes * Add new features to the code * Discuss changes * Add missing documentation * Improve our test coverage The rest of this document is a guide for those maintaining Aruba, and others who would like to submit patches. ## Contributing to the Aruba project It would be great if all people who want to contribute to the Aruba project — contributors and maintainers — follow the guidelines in this section. There are also "Getting started" sections both for [contributors](#getting-started-as-a-contributor) and [maintainers](#getting-started-as-a-maintainer). ### Issues About to create a new GitHub Issue? We appreciate that. But before you do, please learn our basic rules: * This is not a support forum. If you have a question, please go to [The Cukes Google Group](http://groups.google.com/group/cukes). * Do you have an idea for a new feature? Then don't expect it to be implemented unless you or someone else submits a [pull request](https://help.github.com/articles/using-pull-requests). It might be better to start a discussion on [the Google Group](http://groups.google.com/group/cukes). * Reporting a bug? Follow our comments in the Issue Template, which is pre-filled when you create the new GitHub Issue. * We love [pull requests](https://help.github.com/articles/using-pull-requests). The same here: Please consider our comments within the pull request template. ### Pull Requests #### Contributors Please... * Fork the project. Make a branch for your change. * Make your feature addition or bug fix — if you're unsure if your addition will be accepted, open a GitHub Issue for discussion first * Make sure your patch is well covered by tests. We don't accept changes that aren't tested. * Do not change the `Rakefile`, gem version number in `version.rb`, or [`CHANGELOG.md`][]. (If you want to have your own version, that is fine but bump version in a separate commit, so that we can ignore that commit when we merge your change.) * Make sure your pull request complies with our development style guidelines. * Rebase your branch if needed. This reduces clutter in our git history. * Make sure you don't break other people's code. On major changes: First deprecate, then bump major version, then make breaking changes, * Split up your changes into reviewable git commits which combine all lines/files relevant for a single change. * Send us a pull request. #### Maintainers * Use pull requests for larger or controversial changes made by yourself or changes you might expected to break the build. * Commit smaller changes directly to master, e.g. fixing typos, adding tests or adding documentation. * Update [`CHANGELOG.md`][] when a pull request is merged. * Make sure all tests are green before merging a pull request. ### Development style guidelines * We try to follow the recommendations in the [Ruby Community Style Guide][] and use [`rubocop`][] to "enforce" it. Please see [.rubocop.yml][] for exceptions. * There should be `action` methods and `getter` methods in Aruba. Only the latter should return values. Please expect the first ones to return `nil`. * Add documentation — aka acceptance tests — for new features using Aruba's Cucumber steps. Place them somewhere suitable in [features/]. * Add unit tests where needed to cover edge cases which are not (directly) relevant for users. * Add [YARD] developer documentation to all relevant methods added. * Format your commit messages following these seven rules — see the ["How to Write a Git Commit Message"] blog post for a well-written explanation about the why. 1. Separate subject from body with a blank line 2. Limit the subject line to 50 characters 3. Capitalize the subject line 4. Do not end the subject line with a period 5. Use the imperative mood in the subject line 6. Wrap the body at 72 characters 7. Use the body to explain what and why vs. how (optional if subject is self-explanatory) ## Getting started as a "Contributor" ### Requirements To get started with Aruba, you only need [Bundler]. Install Aruba's dependencies: ```bash bundle install ``` ### Running tests Run the following command to run the test suite. ```bash # Run the test suite bin/test ``` Or use these Rake tasks: ```bash # Run the whole test suite rake test # Run RSpec tests rake spec # Run Cucumber features rake cucumber # Run Cucumber features which are "WORK IN PROGRESS" and are allowed to fail rake cucumber:wip ``` If you have problems because our assumptions about your local setup are wrong, perhaps you can use this Docker workflow. This requires [Docker] to be installed on your local system. ```bash # Build the docker container bundle exec rake docker:build # Alternative: Build with disabled cache bundle exec rake 'docker:build[false]' # Build image with version tag bundle exec rake 'docker:build[false, 0.1.0]' # Run the whole test suite in "docker"-container RUN_IN_DOCKER=1 bin/test # Run only selected scenario RUN_IN_DOCKER=1 bin/test cucumber features/steps/command/shell.feature:14 ``` ### Installing your own gems used for development A `Gemfile.local` file can be used, to have your own gems installed to support your normal development workflow. Example `Gemfile.local`: ```ruby gem 'pry' gem 'pry-byebug' gem 'byebug' ``` ### Running a developer console The interactive Aruba console starts an IRB console with Aruba's API loaded: ```bash bin/console ``` ### Linting Aruba's Rakefile provides the following linting tasks ```bash bundle exec rake lint # Run all linters bundle exec rake lint:coding_guidelines # Lint our code with "rubocop" bundle exec rake lint:licenses # Check for relevant licenses in project ``` ### Building and installing your local Aruba version You can use the following Rake tasks to build and install your work-in-progress locally: ```bash # Build your copy bundle exec rake build # Build and install your copy bundle exec rake install # Build and install your copy without network access bundle exec rake install:local ``` ## Getting started as a "Maintainer" ### Release Process * Bump the version number in `lib/aruba/version.rb` * Make sure [`CHANGELOG.md`] is updated with the upcoming version number, and has entries for all fixes. * No need to add a [`CHANGELOG.md`] header at this point - this should be done later, when a new change is made. Now release it: ```bash # update dependencies bundle update # Run test suite bin/test # Release gem git commit -m "Version bump" bundle exec rake release ``` Now send a PR to [cucumber/website] adding an article with details of the new release. Then merge it - an aruba maintainer should normally be allowed to merge PRs on [cucumber/website]. A copy of an old announcement can be used as basis for the new article. Now, send an email with the link to the article to `cukes@googlegroups.com`. ### Gaining Release Karma To become a release manager, create a pull request adding your name to the list below, and include your Rubygems email address in the ticket. One of the existing Release managers will then add you. Current release managers: * Aslak Hellesøy ([@aslakhellesoy](https://github.com/aslakhellesoy)) * Matt Wynne ([@mattwynne](https://github.com/mattwynne)) * Matijs van Zuijlen ([@mvz](https://github.com/mvz)) To grant release karma, issue the following command: ```bash gem owner aruba --add ``` [`CHANGELOG.md`]: CHANGELOG.md [CHANGELOG.md]: CHANGELOG.md [`rubocop`]: https://github.com/bbatsov/rubocop [Ruby Community Style Guide]: https://github.com/bbatsov/ruby-style-guide [.rubocop.yml]: .rubocop.yml [features/]: features/ [Bundler]: https://bundler.io/ [Docker]: https://docs.docker.com/ [YARD]: http://yardoc.org/ ["How to Write a Git Commit Message"]: http://chris.beams.io/posts/git-commit/ [cucumber/website]: https://github.com/cucumber/website ruby-aruba-1.0.4/Dockerfile000066400000000000000000000054651377453476700156200ustar00rootroot00000000000000FROM ubuntu:14.04 MAINTAINER Aruba Maintainers # Packages needed to install RVM and run Bundler gem commands RUN apt-get update -qq \ && apt-get -y install ca-certificates curl git-core --no-install-recommends \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin # Create guest user early (before rvm) so uid:gid are 1000:000 RUN useradd -m -s /bin/bash guest # Temporarily install RVM as root - just for requirements RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \ && curl -L get.rvm.io | bash -s stable \ && bash -l -c 'rvm requirements 2.2.1' \ && bash -l -c 'echo yes | rvm implode' \ # Fix locale ENV DEBIAN_FRONTEND noninteractive RUN dpkg-reconfigure locales && locale-gen en_US.UTF-8 && /usr/sbin/update-locale LANG=en_US.UTF-8 \ && echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen ENV LC_ALL C.UTF-8 ENV LANG C.UTF-8 ENV LANGUAGE C.UTF-8 # Zsh (just for the sake of a handful of Cucumber scenarios) RUN apt-get update -qq \ && apt-get -y install zsh --no-install-recommends \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin # Python (just for the sake of a handful of Cucumber scenarios) RUN apt-get update -qq \ && apt-get -y install python --no-install-recommends \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin # Java (for javac - also for just a few Cucumber scenarios) RUN apt-get update -qq \ && apt-get -y install openjdk-7-jdk --no-install-recommends \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin # Cache needed gems - for faster test reruns ADD Gemfile Gemfile.lock aruba.gemspec /home/guest/cache/aruba/ ADD lib/aruba/version.rb /home/guest/cache/aruba/lib/aruba/version.rb RUN chown -R guest:guest /home/guest/cache USER guest ENV HOME /home/guest WORKDIR /home/guest # Install RVM as guest RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \ && /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc" \ && curl -L get.rvm.io | bash -s stable \ && /bin/bash -l -c "rvm install 2.3.0 && rvm cleanup all" \ && /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" \ && echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc \ && echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.zshrc # Download and install aruba + dependencies WORKDIR /home/guest/cache/aruba RUN bash -l -c "bundle install" # Default working directory RUN mkdir -p /home/guest/aruba WORKDIR /home/guest/aruba CMD ["bundle exec rake test"] ruby-aruba-1.0.4/Gemfile000066400000000000000000000004561377453476700151140ustar00rootroot00000000000000source 'https://rubygems.org' # Use dependencies from gemspec gemspec # Load local Gemfile if File.file? File.expand_path('Gemfile.local', __dir__) load File.expand_path('Gemfile.local', __dir__) end unless RUBY_PLATFORM.include?('java') gem 'byebug', '~> 11.0' gem 'pry-byebug', '~> 3.4' end ruby-aruba-1.0.4/LICENSE000066400000000000000000000022071377453476700146220ustar00rootroot00000000000000Copyright (c) 2010-2020 Aslak Hellesøy, David Chelimsky, Mike Sassak, Jarl Friis, Matt Wynne, Dennis Günnewig and Matijs van Zuijlen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ruby-aruba-1.0.4/Manifest.txt000066400000000000000000000077201377453476700161310ustar00rootroot00000000000000lib/aruba lib/aruba.rb lib/aruba/api lib/aruba/api.rb lib/aruba/api/bundler.rb lib/aruba/api/commands.rb lib/aruba/api/core.rb lib/aruba/api/environment.rb lib/aruba/api/filesystem.rb lib/aruba/api/text.rb lib/aruba/aruba_path.rb lib/aruba/basic_configuration lib/aruba/basic_configuration.rb lib/aruba/basic_configuration/option.rb lib/aruba/cli.rb lib/aruba/colorizer.rb lib/aruba/command.rb lib/aruba/config lib/aruba/config/jruby.rb lib/aruba/config_wrapper.rb lib/aruba/configuration.rb lib/aruba/console lib/aruba/console.rb lib/aruba/console/help.rb lib/aruba/contracts lib/aruba/contracts/absolute_path.rb lib/aruba/contracts/enum.rb lib/aruba/contracts/is_power_of_two.rb lib/aruba/contracts/relative_path.rb lib/aruba/cucumber lib/aruba/cucumber.rb lib/aruba/cucumber/command.rb lib/aruba/cucumber/environment.rb lib/aruba/cucumber/file.rb lib/aruba/cucumber/hooks.rb lib/aruba/cucumber/testing_frameworks.rb lib/aruba/errors.rb lib/aruba/event_bus lib/aruba/event_bus.rb lib/aruba/event_bus/name_resolver.rb lib/aruba/events.rb lib/aruba/file_size.rb lib/aruba/generators lib/aruba/generators/script_file.rb lib/aruba/hooks.rb lib/aruba/in_config_wrapper.rb lib/aruba/initializer.rb lib/aruba/matchers lib/aruba/matchers/base lib/aruba/matchers/base/base_matcher.rb lib/aruba/matchers/base/message_indenter.rb lib/aruba/matchers/base/object_formatter.rb lib/aruba/matchers/collection lib/aruba/matchers/collection.rb lib/aruba/matchers/collection/all.rb lib/aruba/matchers/collection/include_an_object.rb lib/aruba/matchers/command lib/aruba/matchers/command.rb lib/aruba/matchers/command/be_successfully_executed.rb lib/aruba/matchers/command/have_exit_status.rb lib/aruba/matchers/command/have_finished_in_time.rb lib/aruba/matchers/command/have_output.rb lib/aruba/matchers/command/have_output_on_stderr.rb lib/aruba/matchers/command/have_output_on_stdout.rb lib/aruba/matchers/command/have_output_size.rb lib/aruba/matchers/directory lib/aruba/matchers/directory.rb lib/aruba/matchers/directory/be_an_existing_directory.rb lib/aruba/matchers/directory/have_sub_directory.rb lib/aruba/matchers/environment.rb lib/aruba/matchers/file lib/aruba/matchers/file.rb lib/aruba/matchers/file/be_a_command_found_in_path.rb lib/aruba/matchers/file/be_an_existing_executable.rb lib/aruba/matchers/file/be_an_existing_file.rb lib/aruba/matchers/file/have_file_content.rb lib/aruba/matchers/file/have_file_size.rb lib/aruba/matchers/file/have_same_file_content.rb lib/aruba/matchers/path lib/aruba/matchers/path.rb lib/aruba/matchers/path/a_path_matching_pattern.rb lib/aruba/matchers/path/be_an_absolute_path.rb lib/aruba/matchers/path/be_an_existing_path.rb lib/aruba/matchers/path/have_permissions.rb lib/aruba/matchers/string lib/aruba/matchers/string.rb lib/aruba/matchers/string/include_output_string.rb lib/aruba/matchers/string/match_output_string.rb lib/aruba/matchers/string/output_string_eq.rb lib/aruba/platform.rb lib/aruba/platforms lib/aruba/platforms/announcer.rb lib/aruba/platforms/aruba_file_creator.rb lib/aruba/platforms/aruba_fixed_size_file_creator.rb lib/aruba/platforms/aruba_logger.rb lib/aruba/platforms/command_monitor.rb lib/aruba/platforms/determine_disk_usage.rb lib/aruba/platforms/determine_file_size.rb lib/aruba/platforms/filesystem_status.rb lib/aruba/platforms/local_environment.rb lib/aruba/platforms/simple_table.rb lib/aruba/platforms/unix_command_string.rb lib/aruba/platforms/unix_environment_variables.rb lib/aruba/platforms/unix_platform.rb lib/aruba/platforms/unix_which.rb lib/aruba/platforms/windows_command_string.rb lib/aruba/platforms/windows_environment_variables.rb lib/aruba/platforms/windows_platform.rb lib/aruba/platforms/windows_which.rb lib/aruba/processes lib/aruba/processes/basic_process.rb lib/aruba/processes/debug_process.rb lib/aruba/processes/in_process.rb lib/aruba/processes/spawn_process.rb lib/aruba/rspec.rb lib/aruba/runtime.rb lib/aruba/setup.rb lib/aruba/tasks lib/aruba/tasks/docker_helpers.rb lib/aruba/version.rb exe/aruba CHANGELOG.md CONTRIBUTING.md LICENSE README.md ruby-aruba-1.0.4/README.md000066400000000000000000000063651377453476700151050ustar00rootroot00000000000000[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/cucumber/aruba/master/LICENSE) [![Docs](https://img.shields.io/badge/cucumber.pro-aruba-3d10af.svg)](https://app.cucumber.pro/projects/aruba) [![Gem Version](https://badge.fury.io/rb/aruba.svg)](http://badge.fury.io/rb/aruba) [![Code Climate](https://codeclimate.com/github/cucumber/aruba.svg)](https://codeclimate.com/github/cucumber/aruba) [![Support](https://img.shields.io/badge/cucumber-support-orange.svg)](https://cucumber.io/support) [![Travis CI build status](https://travis-ci.org/cucumber/aruba.svg)](https://travis-ci.org/cucumber/aruba) [![Appveyor build status](https://ci.appveyor.com/api/projects/status/jfo2tkqhnrqqcivl?svg=true)](https://ci.appveyor.com/project/cucumberbdd/aruba) ## Install Add this line to your application's `Gemfile`: ```ruby gem 'aruba' ``` And then execute: ```bash bundle ``` Or install it yourself as: ```bash gem install aruba ``` ## Usage ### As a user getting started with Aruba Our most current documentation to get started with Aruba as a user can be found on [Cucumber Jam](https://app.cucumber.pro/projects/aruba). It is generated from our feature files describing the use of Aruba. ### As a user getting started with a ruby testing framework * **Cucumber**: If you're new to the Cucumber ecosystem, it's worth to visit [the project's documentation site](https://cucumber.io/docs). This also includes information about how to write feature files in Gherkin. * **RSpec**: If you want to use Aruba with RSpec and you need some information about how to use RSpec, please visit [their website](http://rspec.info/documentation/). * **minitest**: The documentation for minitest can be found [here](http://docs.seattlerb.org/minitest/). ### As a developer getting started with Aruba A full documentation of the API for developers can be found on [RubyDoc](http://www.rubydoc.info/gems/aruba). ## Support ### Channels For support, please have a look at the [support website](https://cucumber.io/support) of Cucumber. You have different options to reach out for help: Recommended for Aruba are using the Slack channels — e.g. `committers-aruba` or `help-cucumber-ruby` — ([register account](https://cucumberbdd-slack-invite.herokuapp.com/)), and the [Issues page on GitHub](https://github.com/cucumber/aruba/issues). ### Maintainers Currently, this gem is mainly maintained by this group of people: * [@mvz](https://github.com/mvz) ## Release Policy We try to comply with [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html). ## Supported Ruby versions Aruba is supported on Ruby 2.4 and up, and tested against CRuby 2.4, 2.5, 2.6 and 2.7, and JRuby 9.2. ## Supported operating systems Aruba is fully tested in CI on Linux and MacOS. On Windows, only RSpec tests are run, so YMMV. Full Windows support is a work in progress. ## Contributing Please see the [CONTRIBUTING](CONTRIBUTING.md) file. ## Code branches Development takes place in the `master` branch and currently targets the 1.x releases. If necessary, maintenance of the old 0.14.x releases takes place in the `0-14-stable` branch. Stable branches will not be created until absolutely necessary. ## License See the file [LICENSE](LICENSE). ruby-aruba-1.0.4/Rakefile000066400000000000000000000042751377453476700152710ustar00rootroot00000000000000$LOAD_PATH << File.expand_path(__dir__) require 'aruba/tasks/docker_helpers' require 'aruba/platform' require 'bundler' Bundler.setup require 'cucumber/rake/task' require 'rspec/core/rake_task' Cucumber::Rake::Task.new do |t| t.cucumber_opts = %w(--format progress) end Cucumber::Rake::Task.new('cucumber:wip', 'Run Cucumber features '\ 'which are "WORK IN PROGRESS" and '\ 'are allowed to fail') do |t| t.cucumber_opts = %w(--format progress) t.profile = 'wip' end RSpec::Core::RakeTask.new desc 'Run the whole test suite.' task test: [:spec, :cucumber] namespace :lint do desc 'Lint our code with "rubocop"' task :coding_guidelines do sh 'bundle exec rubocop' end desc 'Check for relevant licenses in project' task :licenses do sh 'bundle exec license_finder' end require 'yard-junk/rake' YardJunk::Rake.define_task end desc 'Run all linters.' task lint: %w(lint:coding_guidelines lint:licenses) Bundler::GemHelper.install_tasks require 'rake/manifest/task' Rake::Manifest::Task.new do |t| t.patterns = ['lib/**/*', 'exe/*', 'CHANGELOG.md', 'CONTRIBUTING.md', 'LICENSE', 'README.md'] end task build: 'manifest:check' namespace :docker do desc 'Build docker image' task :build, :cache, :version do |_, args| args.with_defaults(version: 'latest') args.with_defaults(cache: true) docker_compose_file = Aruba::DockerComposeFile.new(File.expand_path('docker-compose.yml', __dir__)) docker_run_instance = Aruba::DockerRunInstance.new(docker_compose_file, :base) builder = Aruba::DockerBuildCommandLineBuilder.new( docker_run_instance, cache: args[:cache], version: args[:version] ) sh builder.to_cli end desc 'Run docker container' task :run, :command do |_, args| docker_compose_file = Aruba::DockerComposeFile.new(File.expand_path('docker-compose.yml', __dir__)) docker_run_instance = Aruba::DockerRunInstance.new(docker_compose_file, :base) builder = Aruba::DockerRunCommandLineBuilder.new( docker_run_instance, command: args[:command] || docker_run_instance.command ) sh builder.to_cli end end task default: :test ruby-aruba-1.0.4/TODO.md000066400000000000000000000013501377453476700147020ustar00rootroot00000000000000* Replace check filesystem permissons through a better rspec matcher * Improve documentation for matchers in file * Cleanup stdout/stderr in spawn process: It should be enough to use 'open(@process.io.stdout).read' and 'open(@process.io.stderr).read'. There's no need to rewind them. * Ensure that all processes are kill after cucumber is finished * Add variation of check and stop of command if output contains Add something like `(?: of last command)?`. If this is true, just check the last command. * Use aruba.config.exit_timeout everywhere * Fix problem with long running commands in background: Since we need to stop all commands to access the status of the last command stopped, we have problems with long running commands ruby-aruba-1.0.4/appveyor.yml000066400000000000000000000012331377453476700162030ustar00rootroot00000000000000version: "{build}" # This will build all PRs targeting matching branches. # Without this, each PR builds twice -- once for the PR branch HEAD, # and once for the merge commit that github creates for each mergeable PR. branches: only: - master # Disable normal Windows builds in favor of our test script. build: off install: - SET PATH=C:\Ruby%ruby_version%\bin;%PATH% - ruby --version - gem --version - bundler --version - bundle install test_script: - bundle exec rake spec --trace environment: matrix: - ruby_version: '24' - ruby_version: '25' - ruby_version: '26' # Note: ruby version 2.7 is not available as of 2019-12-31 ruby-aruba-1.0.4/aruba.gemspec000066400000000000000000000045401377453476700162560ustar00rootroot00000000000000require_relative 'lib/aruba/version' Gem::Specification.new do |spec| spec.name = 'aruba' spec.version = Aruba::VERSION spec.author = 'Aslak Hellesøy, Matt Wynne and other Aruba Contributors' spec.description = <<~TEXT Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest", to make testing command line applications meaningful, easy and fun. TEXT spec.summary = "aruba-#{spec.version}" spec.license = 'MIT' spec.email = 'cukes@googlegroups.com' spec.homepage = 'https://github.com/cucumber/aruba' spec.metadata = { 'bug_tracker_uri' => 'https://github.com/cucumber/aruba/issues', 'changelog_uri' => 'https://www.rubydoc.info/gems/aruba/file/CHANGELOG.md', 'documentation_uri' => 'https://www.rubydoc.info/gems/aruba', 'homepage_uri' => spec.homepage, 'source_code_uri' => 'https://github.com/cucumber/aruba' } spec.add_runtime_dependency 'childprocess', ['>= 2.0', '< 5.0'] spec.add_runtime_dependency 'contracts', '~> 0.16.0' spec.add_runtime_dependency 'cucumber', ['>= 2.4', '< 6.0'] spec.add_runtime_dependency 'rspec-expectations', '~> 3.4' spec.add_runtime_dependency 'thor', '~> 1.0' spec.add_development_dependency 'json', '~> 2.1' spec.add_development_dependency 'license_finder', '~> 6.0' spec.add_development_dependency 'minitest', '~> 5.10' spec.add_development_dependency 'pry-doc', '~> 1.0' spec.add_development_dependency 'rake', '~> 13.0' spec.add_development_dependency 'rake-manifest', '~> 0.1.0' spec.add_development_dependency 'rspec', '~> 3.10.0' spec.add_development_dependency 'rubocop', '~> 1.6.0' spec.add_development_dependency 'rubocop-packaging', '~> 0.5.0' spec.add_development_dependency 'rubocop-performance', '~> 1.9.0' spec.add_development_dependency 'rubocop-rspec', '~> 2.1.0' spec.add_development_dependency 'simplecov', ['>= 0.18.0', '< 0.21.0'] spec.add_development_dependency 'yard-junk', '~> 0.0.7' spec.rubygems_version = '>= 1.6.1' spec.required_ruby_version = '>= 2.4' spec.files = File.readlines('Manifest.txt', chomp: true) spec.executables = ['aruba'] spec.rdoc_options = ['--charset', 'UTF-8', '--main', 'README.md'] spec.extra_rdoc_files = ['CHANGELOG.md', 'CONTRIBUTING.md', 'README.md', 'LICENSE'] spec.bindir = 'exe' spec.require_paths = ['lib'] end ruby-aruba-1.0.4/bin/000077500000000000000000000000001377453476700143645ustar00rootroot00000000000000ruby-aruba-1.0.4/bin/console000077500000000000000000000001771377453476700157610ustar00rootroot00000000000000#!/usr/bin/env ruby $LOAD_PATH.unshift File.expand_path('../lib', __dir__) require 'aruba/console' Aruba::Console.new.start ruby-aruba-1.0.4/bin/test000077500000000000000000000002321377453476700152660ustar00rootroot00000000000000#!/usr/bin/env bash : ${RUN_IN_DOCKER:='0'} if [ "$RUN_IN_DOCKER" == '1' ]; then bundle exec rake "docker:run[$*]" else bundle exec rake test $* fi ruby-aruba-1.0.4/config/000077500000000000000000000000001377453476700150615ustar00rootroot00000000000000ruby-aruba-1.0.4/config/.gitignore000066400000000000000000000000151377453476700170450ustar00rootroot00000000000000aruba-rvm.ymlruby-aruba-1.0.4/cucumber.yml000066400000000000000000000004261377453476700161460ustar00rootroot00000000000000<% std_opts = "--format pretty --color --exclude features/fixtures --require features --tags 'not @unsupported-on'" ignore_opts = "--tags 'not @ignore'" %> default: <%= std_opts %> --tags 'not @wip' <%= ignore_opts %> wip: <%= std_opts %> --wip --tags @wip:3 <%= ignore_opts %> ruby-aruba-1.0.4/doc/000077500000000000000000000000001377453476700143615ustar00rootroot00000000000000ruby-aruba-1.0.4/doc/dependency_decisions.yml000066400000000000000000000021451377453476700212640ustar00rootroot00000000000000--- - - :approve - win32console - :who: :why: :when: 2016-05-09 14:57:58.000000000 Z - - :permit - MIT - :who: :why: :when: 2015-04-28 13:38:19.583103100 Z - - :ignore_group - development - :who: :why: :when: 2015-04-28 13:39:28.340867782 Z - - :permit - BSD - :who: :why: :when: 2015-04-28 13:39:40.984464786 Z - - :ignore_group - development - :who: :why: :when: 2016-04-19 21:35:58.945568982 Z - - :ignore_group - test - :who: :why: :when: 2016-04-19 21:36:02.006089986 Z - - :approve - contracts - :who: :why: :when: 2016-04-19 21:38:58.571635580 Z - - :permit - ruby - :who: :why: :when: 2016-04-19 21:40:01.747535503 Z - - :permit - New BSD - :who: :why: :when: 2016-12-07 14:54:49.587491547 Z - - :permit - Simplified BSD - :who: :why: :when: 2017-06-30 06:37:18.031292275 Z - - :ignore_group - debug - :who: :why: :when: 2017-06-09 14:29:19.742116140 Z - - :permit - Apache 2.0 - :who: :why: :versions: [] :when: 2020-06-05 12:05:46.881507110 Z ruby-aruba-1.0.4/docker-compose.yml000066400000000000000000000011341377453476700172500ustar00rootroot00000000000000# To build the base image (official Aruba base for this), run: # # $ docker-compose build base # # To run the tests, run: # # $ docker-compose run tests # version: '2' services: base: image: 'cucumber/aruba' container_name: 'cucumber-aruba-1' build: context: . dockerfile: Dockerfile args: http_proxy: "${http_proxy}" https_proxy: "${https_proxy}" HTTP_PROXY: "${HTTP_PROXY}" HTTPS_PROXY: "${HTTPS_PROXY}" working_dir: /home/guest/aruba command: /bin/bash -l -c "bundle exec rake test" volumes: - .:/home/guest/aruba ruby-aruba-1.0.4/exe/000077500000000000000000000000001377453476700143755ustar00rootroot00000000000000ruby-aruba-1.0.4/exe/aruba000077500000000000000000000001561377453476700154170ustar00rootroot00000000000000#!/usr/bin/env ruby $LOAD_PATH << File.expand_path('../lib', __dir__) require 'aruba/cli' Aruba::Cli.start ruby-aruba-1.0.4/features/000077500000000000000000000000001377453476700154325ustar00rootroot00000000000000ruby-aruba-1.0.4/features/01_getting_started_with_aruba/000077500000000000000000000000001377453476700233265ustar00rootroot00000000000000ruby-aruba-1.0.4/features/01_getting_started_with_aruba/cleanup_working_directory.feature000066400000000000000000000040041377453476700321540ustar00rootroot00000000000000Feature: Cleanup Aruba Working Directory By default Aruba removes its scratch directory *before* every scenario. This isn't always the right thing to do, especially when the path to the default directory has been changed. Use the `@no-clobber`-tag on your scenarios to stop Aruba from cleaning up *before* it runs. Background: Given I use a fixture named "cli-app" Scenario: Clean up artifacts and pwd from a previous scenario Given a file named "features/cleanup.feature" with: """ Feature: Check Scenario: Check #1 Given a file named "file.txt" with "content" And a directory named "dir.d" Then a file named "file.txt" should exist And a directory named "dir.d" should exist When I cd to "dir.d" And I run `pwd` Then the output should match %r Scenario: Check #2 Then a file named "file.txt" should not exist And a directory named "dir.d" should not exist When I run `pwd` Then the output should match %r """ When I run `cucumber` Then the features should all pass Scenario: Do not clobber before run The `@no-clobber` tag stops Aruba from clearing out its scratch directory. Other setup steps are still performed, such as setting the current working directory. Given a file named "tmp/aruba/file.txt" with "content" And a directory named "tmp/aruba/dir.d" And a file named "features/cleanup.feature" with: """ Feature: Check Scenario: Check #1 Given a file named "file.txt" with "content" And a directory named "dir.d" Then a file named "file.txt" should exist And a directory named "dir.d" should exist @no-clobber Scenario: Check #2 Then a file named "file.txt" should exist And a directory named "dir.d" should exist When I run `pwd` Then the output should match %r """ When I run `cucumber` Then the features should all pass ruby-aruba-1.0.4/features/01_getting_started_with_aruba/run_commands.feature000066400000000000000000000046751377453476700274040ustar00rootroot00000000000000Feature: Run commands with Aruba As long as you've got the neccessary programs, libraries, runtime environments, interpreters installed, it doesn't matter in which programming language your command line application is implemented. You can also run any program that is in your $PATH. Background: Given I use a fixture named "getting-started-app" @requires-bash Scenario: Bash Program Given an executable named "bin/aruba-test-cli" with: """bash #!/usr/bin/env bash echo "Hello, Aruba!" """ And a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `aruba-test-cli` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-bash Scenario: Bash Program run via bash Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "cli.sh" with: \"\"\" echo "Hello, Aruba!" \"\"\" When I successfully run `bash ./cli.sh` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-ruby Scenario: Ruby Program Given an executable named "bin/aruba-test-cli" with: """ruby #!/usr/bin/env ruby puts "Hello, Aruba!" """ And a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given I successfully run `aruba-test-cli` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass @requires-ruby Scenario: Ruby Program via "ruby" Given a file named "features/hello_aruba.feature" with: """ Feature: Getting Started With Aruba Scenario: First Run of Command Given a file named "cli.rb" with: \"\"\" puts "Hello, Aruba!" \"\"\" When I successfully run `ruby ./cli.rb` Then the output should contain: \"\"\" Hello, Aruba! \"\"\" """ When I successfully run `cucumber` Then the features should all pass ruby-aruba-1.0.4/features/01_getting_started_with_aruba/supported_testing_frameworks.feature000066400000000000000000000041111377453476700327220ustar00rootroot00000000000000Feature: Supported Testing Frameworks You can use `aruba` with all major testing frameworks from the Ruby World: \* Cucumber \* RSpec \* Minitest Background: Given I use a fixture named "cli-app" Scenario: Use "aruba" with "Cucumber" Given a file named "features/support/env.rb" with: """ require 'aruba/cucumber' """ And a file named "features/use_aruba_with_cucumber.feature" with: """ Feature: Cucumber Scenario: First Run Given a file named "file.txt" with: \"\"\" Hello World \"\"\" Then the file "file.txt" should contain: \"\"\" Hello World \"\"\" """ When I run `cucumber` Then the features should all pass Scenario: Use "aruba" with "RSpec" Given a file named "spec/spec_helper.rb" with: """ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) require 'aruba/rspec' """ And a file named "spec/use_aruba_with_rspec_spec.rb" with: """ require 'spec_helper' RSpec.describe 'First Run', :type => :aruba do let(:file) { 'file.txt' } let(:content) { 'Hello World' } before { write_file file, content } it { expect(read(file)).to eq [content] } end """ When I run `rspec` Then the specs should all pass Scenario: Use "aruba" with "Minitest" Given a file named "test/test_helper.rb" with: """ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) require 'aruba/api' """ And a file named "test/use_aruba_with_minitest.rb" with: """ $LOAD_PATH.unshift File.expand_path('../test', __FILE__) require 'test_helper' require 'minitest/autorun' class FirstRun < Minitest::Test include Aruba::Api def setup aruba_setup end def getting_started_with_aruba file = 'file.txt' content = 'Hello World' write_file file, content read(file).must_equal [content] end end """ When I run `ruby -Ilib:test test/use_aruba_with_minitest.rb` Then the tests should all pass ruby-aruba-1.0.4/features/02_configure_aruba/000077500000000000000000000000001377453476700210665ustar00rootroot00000000000000ruby-aruba-1.0.4/features/02_configure_aruba/activate_announcer_on_command_failure.feature000066400000000000000000000021121377453476700322100ustar00rootroot00000000000000Feature: Configure announcer activation on command failure As a developer I want to configure which announcers should get activated on command failure In order to understand what caused a command to fail Background: Given I use the fixture "cli-app" Scenario: Default value Given a file named "features/support/aruba_config.rb" with: """ruby Aruba.configure do |config| puts %(The default value is "#{config.activate_announcer_on_command_failure.inspect}") end """ When I successfully run `cucumber` Then the output should contain: """ruby The default value is "[]" """ Scenario: Modify value Given a file named "features/support/aruba_config.rb" with: """ruby Aruba.configure do |config| config.activate_announcer_on_command_failure = [:foo, :bar] end Aruba.configure do |config| puts %(The value is "#{config.activate_announcer_on_command_failure.inspect}") end """ Then I successfully run `cucumber` Then the output should contain: """ The value is "[:foo, :bar]" """ ruby-aruba-1.0.4/features/02_configure_aruba/basics.feature000066400000000000000000000110761377453476700237140ustar00rootroot00000000000000Feature: Usage of configuration You can configure `aruba` in two ways: 1. Using `Aruba.configure`-block 2. Using `aruba.config.