Sha256: 00e8a2e98c6864b6f347ed4b737cde3e6e882f19350d856c3f3b0561400336e2
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
require 'cucumber/core/ast/describes_itself' require 'cucumber/core/ast/names' require 'cucumber/core/ast/location' module Cucumber module Core module Ast # Represents the root node of a parsed feature. class Feature include Names include HasLocation include DescribesItself attr_reader :gherkin_statement, :language, :location, :background, :comments, :tags, :keyword, :description, :feature_elements def initialize(gherkin_statement, language, location, background, comments, tags, keyword, name, description, feature_elements) @gherkin_statement = gherkin_statement @language = language @location = location @background = background @comments = comments @tags = tags @keyword = keyword @name = name @description = description @feature_elements = feature_elements end def children [background] + @feature_elements end def short_name first_line = name.split(/\n/)[0] if first_line =~ /#{language.keywords('feature')}:(.*)/ $1.strip else first_line end end def to_sexp sexp = [:feature, file, name] comment = @comment.to_sexp sexp += [comment] if comment tags = @tags.to_sexp sexp += tags if tags.any? sexp += [@background.to_sexp] if @background sexp += @feature_elements.map{|fe| fe.to_sexp} sexp end private def description_for_visitors :feature end end class NullFeature def method_missing(*args, &block) self end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cucumber-core-1.2.0 | lib/cucumber/core/ast/feature.rb |