Sha256: 00b1feeb8fa1827f392d556ed4928428665e0e98e4bb072c8bf83c3c86c65478

Contents?: true

Size: 844 Bytes

Versions: 5

Compression:

Stored size: 844 Bytes

Contents

# frozen_string_literal: true

require "better_html/tree/attributes_list"
require "better_html/ast/iterator"

module BetterHtml
  module Tree
    class Tag
      attr_reader :node, :start_solidus, :name_node, :attributes_node, :end_solidus

      class << self
        def from_node(node)
          new(node)
        end
      end

      def initialize(node)
        @node = node
        @start_solidus, @name_node, @attributes_node, @end_solidus = *node
      end

      def loc
        @node.loc
      end

      def name
        @name_node&.loc&.source&.downcase
      end

      def closing?
        @start_solidus&.type == :solidus
      end

      def self_closing?
        @end_solidus&.type == :solidus
      end

      def attributes
        @attributes ||= AttributesList.from_nodes(@attributes_node.to_a)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
better_html-2.1.1 lib/better_html/tree/tag.rb
better_html-2.1.0 lib/better_html/tree/tag.rb
better_html-2.0.2 lib/better_html/tree/tag.rb
better_html-2.0.1 lib/better_html/tree/tag.rb
better_html-2.0.0 lib/better_html/tree/tag.rb