Sha256: 77300dd4910db03416cfa1d16cab5f0ee578aa3c2bb641e58c5095452bb76d5d

Contents?: true

Size: 752 Bytes

Versions: 4

Compression:

Stored size: 752 Bytes

Contents

module Gurke
  #
  # A {FeatureList} is a list of {Feature} objects.
  #
  class FeatureList < Array
    #
    # Run all features from this list.
    #
    # @return [Boolean] False if any scenario has failed or is pending.
    #
    # @api private
    #
    def run(runner, reporter)
      reporter.invoke :before_features, self

      runner.hook(:features, nil) do
        run_features runner, reporter
      end

      reporter.invoke :after_features, self

      !any?{|s| s.failed? || s.pending? }
    end

    private

    def run_features(runner, reporter)
      reporter.invoke :start_features, self

      each do |feature|
        feature.run runner, reporter
      end
    ensure
      reporter.invoke :end_features, self
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gurke-2.0.0.dev.1.b22 lib/gurke/feature_list.rb
gurke-2.0.0.dev.1.b20 lib/gurke/feature_list.rb
gurke-2.0.0.dev.1.b19 lib/gurke/feature_list.rb
gurke-2.0.0.dev.1.b18 lib/gurke/feature_list.rb