Sha256: c54cff1efafeb47f5a2f005d2eb6ff87886d18eeb762d8fba263cdfbf0740a23

Contents?: true

Size: 813 Bytes

Versions: 6

Compression:

Stored size: 813 Bytes

Contents

require 'cucumber/core/filter'

module Cucumber
  module Filters
    class ActivateSteps < Core::Filter.new(:step_definitions)

      def test_case(test_case)
        CaseFilter.new(test_case, step_definitions).test_case.describe_to receiver
      end

      class CaseFilter
        def initialize(test_case, step_definitions)
          @original_test_case = test_case
          @step_definitions = step_definitions
        end

        def test_case
          @original_test_case.with_steps(new_test_steps)
        end

        private

        def new_test_steps
          @original_test_case.test_steps.map(&self.method(:attempt_to_activate))
        end

        def attempt_to_activate(test_step)
          @step_definitions.find_match(test_step).activate(test_step)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cucumber-2.1.0 lib/cucumber/filters/activate_steps.rb
cucumber-2.0.2 lib/cucumber/filters/activate_steps.rb
cucumber-2.0.1 lib/cucumber/filters/activate_steps.rb
cucumber-2.0.0 lib/cucumber/filters/activate_steps.rb
cucumber-2.0.0.rc.5 lib/cucumber/filters/activate_steps.rb
cucumber-2.0.0.rc.4 lib/cucumber/filters/activate_steps.rb