jnicklas/turnip

View on GitHub
lib/turnip/node/rule.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'turnip/node/scenario_group_definition'

module Turnip
  module Node
    #
    # @note Rule metadata generated by Gherkin
    #
    #     {
    #       type: :Rule,
    #       location: { line: 10, column: 3 },
    #       keyword: 'Rule',
    #       name: 'Rule name',
    #       description: 'Rule description',
    #       children: [] # Array of Background, Scenario and Scenario Outline
    #     }
    #
    class Rule < ScenarioGroupDefinition
      def children
        @children ||= @raw.children.map do |child|
          if child.is_a?(CukeModeler::Background)
            next Background.new(child)
          end

          if child.is_a?(CukeModeler::Scenario)
            next Scenario.new(child)
          end

          if child.is_a?(CukeModeler::Outline)
            next ScenarioOutline.new(child)
          end
        end.compact
      end
    end
  end
end