Sha256: ea457fba9483a434ea23fa95d8246ee6b226eee4a6a22905958766c15e3af890

Contents?: true

Size: 1.24 KB

Versions: 6

Compression:

Stored size: 1.24 KB

Contents

require 'turnip/node/base'
require 'turnip/node/tag'

module Turnip
  module Node
    #
    # @note Example metadata generated by Gherkin
    #
    #     {
    #       type: :Examples,
    #       tags: [], # Array of Tag
    #       location: { line: 10, column: 3 },
    #       keyword: "Examples",
    #       name: "Example Description",
    #       tableHeader: {},
    #       tableBody: {}
    #     }
    #
    class Example < Base
      include HasTags

      def keyword
        @raw[:keyword]
      end

      def name
        @raw[:name]
      end

      def description
        @raw[:description]
      end

      #
      # @note
      #
      #   Examples:
      #   | monster | hp |
      #   | slime   | 10 | => [ 'monster', 'hp' ]
      #   | daemon  | 70 |
      #
      # @return [Array]
      #
      def header
        @header ||= @raw[:tableHeader][:cells].map { |c| c[:value] }
      end

      #
      # @note
      #
      #   Examples:
      #   | monster | hp |
      #   | slime   | 10 | => [ ['slime', '10'], ['daemon', '70'] ]
      #   | daemon  | 70 |
      #
      # @return [Array]
      #
      def rows
        @rows ||= @raw[:tableBody].map do |row|
          row[:cells].map { |c| c[:value] }
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
turnip-3.1.0 lib/turnip/node/example.rb
turnip-3.0.0 lib/turnip/node/example.rb
turnip-3.0.0.pre.beta.5 lib/turnip/node/example.rb
turnip-3.0.0.pre.beta.4 lib/turnip/node/example.rb
turnip-3.0.0.pre.beta.3 lib/turnip/node/example.rb
turnip-3.0.0.pre.beta.2 lib/turnip/node/example.rb