Sha256: feed6cd2b483b02e80e931d79d7aa3a11d8aea2154e21cbc65027d3140ac7d46

Contents?: true

Size: 833 Bytes

Versions: 7

Compression:

Stored size: 833 Bytes

Contents

require 'turnip/node/base'

module Turnip
  module Node
    #
    # @note Location metadata generated by Gherkin
    #
    #     {
    #       type: :Tag,
    #       location: { line: 10, column: 3 },
    #       name: '@tag'
    #     }
    #
    class Tag < Base
      def name
        @name ||= @raw[:name].gsub(/^@/, '')
      end
    end

    module HasTags
      #
      # @return [Array] Array of Tag
      #
      def tags
        @tags ||= @raw[:tags].map do |tag|
          Tag.new(tag)
        end
      end

      #
      # @return [Array] Array of tag name
      #
      def tag_names
        tags.map(&:name)
      end

      #
      # Convert for hash to be used in RSpec
      #
      # @return  [Hash]
      #
      def metadata_hash
        Hash[tags.map { |t| [t.name.to_sym, true] }]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
turnip-4.0.1 lib/turnip/node/tag.rb
turnip-4.0.0 lib/turnip/node/tag.rb
turnip-3.1.0 lib/turnip/node/tag.rb
turnip-3.0.0 lib/turnip/node/tag.rb
turnip-3.0.0.pre.beta.5 lib/turnip/node/tag.rb
turnip-3.0.0.pre.beta.4 lib/turnip/node/tag.rb
turnip-3.0.0.pre.beta.3 lib/turnip/node/tag.rb