Class: Turnip::Node::Feature

Inherits:
ScenarioGroupDefinition show all
Includes:
HasTags
Defined in:
lib/turnip/node/feature.rb

Overview

Note:

Feature metadata generated by Gherkin

{

type: :Feature,
tags: [], # Array of Tag
location: { line: 10, column: 3 },
language: 'en',
keyword: 'Feature',
name: 'Feature name',
description: 'Feature description',
children: [], # Array of Background, Scenario and Scenario Outline

}

Instance Attribute Summary

Attributes inherited from Base

#raw

Instance Method Summary collapse

Methods included from HasTags

#tag_names, #tags

Methods inherited from ScenarioGroupDefinition

#backgrounds, #description, #keyword, #name, #scenarios

Methods inherited from Base

#initialize

Methods included from HasLocation

#line, #location

Constructor Details

This class inherits a constructor from Turnip::Node::Base

Instance Method Details

#childrenObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/turnip/node/feature.rb', line 29

def children
  @children ||= @raw[:children].map do |child|
    unless child[:background].nil?
      next Background.new(child[:background])
    end

    unless child[:scenario].nil?
      klass = child.dig(:scenario, :examples).nil? ? Scenario : ScenarioOutline
      next klass.new(child[:scenario])
    end

    unless child[:rule].nil?
      next Rule.new(child[:rule])
    end
  end.compact
end

#languageObject



25
26
27
# File 'lib/turnip/node/feature.rb', line 25

def language
  @raw[:language]
end

#metadata_hashObject



52
53
54
# File 'lib/turnip/node/feature.rb', line 52

def 
  super.merge(:type => Turnip.type, :turnip => true)
end

#rulesObject



46
47
48
49
50
# File 'lib/turnip/node/feature.rb', line 46

def rules
  @rules ||= children.select do |c|
    c.is_a?(Rule)
  end
end