guard-cucumber 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/lib/guard/cucumber.rb +22 -31
- data/lib/guard/cucumber/inspector.rb +1 -1
- data/lib/guard/cucumber/notification_formatter.rb +2 -2
- data/lib/guard/cucumber/runner.rb +3 -11
- data/lib/guard/cucumber/templates/Guardfile +1 -1
- data/lib/guard/cucumber/version.rb +1 -1
- metadata +4 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 361015c52734047fccfc7238133810df2db55514
         | 
| 4 | 
            +
              data.tar.gz: ac2cc0cbc96e3d197566389a852f3d79780e4a6e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ede278da59d344250d57f24da1a5bf5c987702ea8b7a07688ad17478f8b5ba578b78d0da482f623870f0dc56f765ef689b82c11c27635e3e2a40aa4198ccf02a
         | 
| 7 | 
            +
              data.tar.gz: 811749cf80b8acb2eec4a61b533331193f497145a94842c0d9c798c04281992ca534f8c1fb23e6124f84adc2845e1462e6a25edf16953988c5eff9753efc4334
         | 
    
        data/README.md
    CHANGED
    
    | @@ -2,7 +2,9 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            Guard::Cucumber allows you to automatically run Cucumber features when files are modified.
         | 
| 4 4 |  | 
| 5 | 
            -
             | 
| 5 | 
            +
            Supported Ruby versions are those tested on [Travis CI](https://travis-ci.org/guard/guard-cucumber).
         | 
| 6 | 
            +
            (NOTE: Any Ruby version earlier than 2.2.5 is outdated and likely insecure).
         | 
| 7 | 
            +
             | 
| 6 8 |  | 
| 7 9 | 
             
            If you have any questions please join us on our [Google group](http://groups.google.com/group/guard-dev) or on `#guard` (irc.freenode.net).
         | 
| 8 10 |  | 
    
        data/lib/guard/cucumber.rb
    CHANGED
    
    | @@ -11,16 +11,23 @@ module Guard | |
| 11 11 | 
             
              class Cucumber < Plugin
         | 
| 12 12 | 
             
                attr_accessor :last_failed, :failed_path
         | 
| 13 13 |  | 
| 14 | 
            +
                KNOWN_OPTIONS = %w(
         | 
| 15 | 
            +
                  all_after_pass
         | 
| 16 | 
            +
                  all_on_start
         | 
| 17 | 
            +
                  keep_failed
         | 
| 18 | 
            +
                  feature_sets
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  run_all
         | 
| 21 | 
            +
                  focus_on
         | 
| 22 | 
            +
                  notification
         | 
| 23 | 
            +
                ).map(&:to_sym)
         | 
| 24 | 
            +
             | 
| 14 25 | 
             
                # Initialize Guard::Cucumber.
         | 
| 15 26 | 
             
                #
         | 
| 16 27 | 
             
                # @param [Array<Guard::Watcher>] watchers the watchers in the Guard block
         | 
| 17 28 | 
             
                # @param [Hash] options the options for the Guard
         | 
| 18 | 
            -
                # @option options [String] :cli any arbitrary Cucumber CLI arguments
         | 
| 19 29 | 
             
                # @option options [Array<String>] :feature_sets a list of non-standard
         | 
| 20 30 | 
             
                # feature directory/ies
         | 
| 21 | 
            -
                # @option options [Boolean] :bundler use bundler or not
         | 
| 22 | 
            -
                # @option options [Array<String>] :rvm a list of rvm version to use for the
         | 
| 23 | 
            -
                # test
         | 
| 24 31 | 
             
                # @option options [Boolean] :notification show notifications
         | 
| 25 32 | 
             
                # @option options [Boolean] :all_after_pass run all features after changed
         | 
| 26 33 | 
             
                # features pass
         | 
| @@ -29,8 +36,6 @@ module Guard | |
| 29 36 | 
             
                # pass
         | 
| 30 37 | 
             
                # @option options [Boolean] :run_all run override any option when running
         | 
| 31 38 | 
             
                # all specs
         | 
| 32 | 
            -
                # @option options [Boolean] :change_format use a different cucumber format
         | 
| 33 | 
            -
                # when running individual features
         | 
| 34 39 | 
             
                #
         | 
| 35 40 | 
             
                def initialize(options = {})
         | 
| 36 41 | 
             
                  super(options)
         | 
| @@ -39,10 +44,16 @@ module Guard | |
| 39 44 | 
             
                    all_after_pass: true,
         | 
| 40 45 | 
             
                    all_on_start: true,
         | 
| 41 46 | 
             
                    keep_failed: true,
         | 
| 42 | 
            -
                     | 
| 47 | 
            +
                    cmd_additional_args: "",
         | 
| 43 48 | 
             
                    feature_sets: ["features"]
         | 
| 44 49 | 
             
                  }.update(options)
         | 
| 45 50 |  | 
| 51 | 
            +
                  unknown_options = @options.keys - KNOWN_OPTIONS
         | 
| 52 | 
            +
                  unknown_options.each do |unknown|
         | 
| 53 | 
            +
                    msg = "Unknown guard-cucumber option: #{unknown.inspect}"
         | 
| 54 | 
            +
                    Guard::Compat::UI.warning(msg)
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 46 57 | 
             
                  @last_failed  = false
         | 
| 47 58 | 
             
                  @failed_paths = []
         | 
| 48 59 | 
             
                end
         | 
| @@ -61,13 +72,13 @@ module Guard | |
| 61 72 | 
             
                #
         | 
| 62 73 | 
             
                def run_all
         | 
| 63 74 | 
             
                  opts = options.merge(options[:run_all] || {})
         | 
| 64 | 
            -
                  opts | 
| 75 | 
            +
                  opts[:message] = "Running all features"
         | 
| 65 76 | 
             
                  passed = Runner.run(options[:feature_sets], opts)
         | 
| 66 77 |  | 
| 67 78 | 
             
                  if passed
         | 
| 68 79 | 
             
                    @failed_paths = []
         | 
| 69 | 
            -
                   | 
| 70 | 
            -
                    @failed_paths = read_failed_features | 
| 80 | 
            +
                  elsif @options[:keep_failed]
         | 
| 81 | 
            +
                    @failed_paths = read_failed_features
         | 
| 71 82 | 
             
                  end
         | 
| 72 83 |  | 
| 73 84 | 
             
                  @last_failed = !passed
         | 
| @@ -93,12 +104,9 @@ module Guard | |
| 93 104 | 
             
                  paths = Inspector.clean(paths, options[:feature_sets])
         | 
| 94 105 |  | 
| 95 106 | 
             
                  options = @options
         | 
| 96 | 
            -
                  if @options[:change_format]
         | 
| 97 | 
            -
                    options = change_format(@options[:change_format])
         | 
| 98 | 
            -
                  end
         | 
| 99 107 |  | 
| 100 108 | 
             
                  msg = "Running all features"
         | 
| 101 | 
            -
                  options | 
| 109 | 
            +
                  options[:message] = msg if paths.include?("features")
         | 
| 102 110 |  | 
| 103 111 | 
             
                  _run(paths, options)
         | 
| 104 112 | 
             
                end
         | 
| @@ -121,23 +129,6 @@ module Guard | |
| 121 129 | 
             
                  failed
         | 
| 122 130 | 
             
                end
         | 
| 123 131 |  | 
| 124 | 
            -
                # Change the `--format` cli option.
         | 
| 125 | 
            -
                #
         | 
| 126 | 
            -
                # @param [String] format the new format
         | 
| 127 | 
            -
                # @return [Hash] the new options
         | 
| 128 | 
            -
                #
         | 
| 129 | 
            -
                def change_format(format)
         | 
| 130 | 
            -
                  cli_parts = @options[:cli].split(" ")
         | 
| 131 | 
            -
                  cli_parts.each_with_index do |part, index|
         | 
| 132 | 
            -
                    if part == "--format" && cli_parts[index + 2] != "--out"
         | 
| 133 | 
            -
                      cli_parts[index + 1] = format
         | 
| 134 | 
            -
                    end
         | 
| 135 | 
            -
                  end
         | 
| 136 | 
            -
                  @options.merge(cli: cli_parts.join(" "))
         | 
| 137 | 
            -
                end
         | 
| 138 | 
            -
             | 
| 139 | 
            -
                private
         | 
| 140 | 
            -
             | 
| 141 132 | 
             
                def _run(paths, options)
         | 
| 142 133 | 
             
                  if Runner.run(paths, options)
         | 
| 143 134 | 
             
                    # clean failed paths memory
         | 
| @@ -65,7 +65,7 @@ module Guard | |
| 65 65 | 
             
                  #
         | 
| 66 66 | 
             
                  # @param [Cucumber::Ast::FeatureElement] feature_element
         | 
| 67 67 | 
             
                  #
         | 
| 68 | 
            -
                  def before_feature_element( | 
| 68 | 
            +
                  def before_feature_element(_feature_element)
         | 
| 69 69 | 
             
                    @rerun = false
         | 
| 70 70 | 
             
                    # TODO: show feature element name instead?
         | 
| 71 71 | 
             
                    # @feature = feature_element.name
         | 
| @@ -96,7 +96,7 @@ module Guard | |
| 96 96 | 
             
                    return unless [:failed, :pending, :undefined].index(status)
         | 
| 97 97 |  | 
| 98 98 | 
             
                    @rerun = true
         | 
| 99 | 
            -
                    step_name = step_match.format_args(lambda { |param| "*#{ | 
| 99 | 
            +
                    step_name = step_match.format_args(lambda { |param| "*#{param}*" })
         | 
| 100 100 |  | 
| 101 101 | 
             
                    options = { title: @feature.name, image: icon_for(status) }
         | 
| 102 102 | 
             
                    Guard::Compat::UI.notify(step_name, options)
         | 
| @@ -14,11 +14,7 @@ module Guard | |
| 14 14 | 
             
                    # @param [Hash] options the options for the execution
         | 
| 15 15 | 
             
                    # @option options [Array<String>] :feature_sets a list of non-standard
         | 
| 16 16 | 
             
                    # feature directory/ies
         | 
| 17 | 
            -
                    # @option options [Boolean] :bundler use bundler or not
         | 
| 18 | 
            -
                    # @option options [Array<String>] :rvm a list of rvm version to use for
         | 
| 19 | 
            -
                    # the test
         | 
| 20 17 | 
             
                    # @option options [Boolean] :notification show notifications
         | 
| 21 | 
            -
                    # @option options [String] :command_prefix allows adding an additional
         | 
| 22 18 | 
             
                    # prefix to the cucumber command. Ideal for running xvfb-run for
         | 
| 23 19 | 
             
                    # terminal only cucumber tests.
         | 
| 24 20 | 
             
                    # @return [Boolean] the status of the execution
         | 
| @@ -48,11 +44,7 @@ module Guard | |
| 48 44 | 
             
                    #
         | 
| 49 45 | 
             
                    # @param [Array<String>] paths the feature files or directories
         | 
| 50 46 | 
             
                    # @param [Hash] options the options for the execution
         | 
| 51 | 
            -
                    # @option options [Boolean] :bundler use bundler or not
         | 
| 52 | 
            -
                    # @option options [Array<String>] :rvm a list of rvm version to use for
         | 
| 53 | 
            -
                    # the test
         | 
| 54 47 | 
             
                    # @option options [Boolean] :notification show notifications
         | 
| 55 | 
            -
                    # @option options [String] :command_prefix allows adding an additional
         | 
| 56 48 | 
             
                    # prefix to the cucumber command. Ideal for running xvfb-run for
         | 
| 57 49 | 
             
                    # terminal only cucumber tests.
         | 
| 58 50 | 
             
                    # @return [String] the Cucumber command
         | 
| @@ -82,11 +74,11 @@ module Guard | |
| 82 74 | 
             
                      formatter_path = File.join(this_dir, "notification_formatter.rb")
         | 
| 83 75 | 
             
                      notification_formatter_path = File.expand_path(formatter_path)
         | 
| 84 76 |  | 
| 85 | 
            -
                      cmd << "--require #{ | 
| 77 | 
            +
                      cmd << "--require #{notification_formatter_path}"
         | 
| 86 78 | 
             
                      cmd << "--format Guard::Cucumber::NotificationFormatter"
         | 
| 87 | 
            -
                      cmd << "--out #{ | 
| 79 | 
            +
                      cmd << "--out #{null_device}"
         | 
| 88 80 | 
             
                      cmd << (options[:feature_sets] || ["features"]).map do |path|
         | 
| 89 | 
            -
                        "--require #{ | 
| 81 | 
            +
                        "--require #{path}"
         | 
| 90 82 | 
             
                      end.join(" ")
         | 
| 91 83 | 
             
                    end
         | 
| 92 84 |  | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            guard "cucumber" do
         | 
| 2 2 | 
             
              watch(%r{^features/.+\.feature$})
         | 
| 3 | 
            -
              watch(%r{^features/support/.+$}) | 
| 3 | 
            +
              watch(%r{^features/support/.+$}) { "features" }
         | 
| 4 4 |  | 
| 5 5 | 
             
              watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
         | 
| 6 6 | 
             
                Dir[File.join("**/#{m[1]}.feature")][0] || "features"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: guard-cucumber
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Cezary Baginski
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2016-04-28 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: guard-compat
         | 
| @@ -103,8 +103,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 103 103 | 
             
                  version: 1.3.6
         | 
| 104 104 | 
             
            requirements: []
         | 
| 105 105 | 
             
            rubyforge_project: 
         | 
| 106 | 
            -
            rubygems_version: 2. | 
| 106 | 
            +
            rubygems_version: 2.5.1
         | 
| 107 107 | 
             
            signing_key: 
         | 
| 108 108 | 
             
            specification_version: 4
         | 
| 109 109 | 
             
            summary: Guard plugin for Cucumber
         | 
| 110 110 | 
             
            test_files: []
         | 
| 111 | 
            +
            has_rdoc: 
         |