Sha256: fa717d3b26c3260646df8aef4a9b48889f6fe1fbde8c7bf32f149e13b9ebfbb3

Contents?: true

Size: 1.41 KB

Versions: 155

Compression:

Stored size: 1.41 KB

Contents

require_relative "../value_object"
require_relative "./checked_node"

module Axe
  module API
    class Results
      class Rule < ValueObject
        values do
          attribute :id, ::Symbol
          attribute :description, ::String
          attribute :help, ::String
          attribute :helpUrl, ::String
          attribute :impact, ::Symbol
          attribute :tags, ::Array[::Symbol]
          attribute :nodes, ::Array[CheckedNode]
        end

        def failure_messages(index)
          [
            title_message(index + 1),
            *[
              helpUrl,
              node_count_message,
              "",
              nodes.reject { |n| n.nil? }.map(&:failure_messages).map { |n| n.push("") }.flatten.map(&indent),
            ].flatten.map(&indent),
          ]
        end

        def to_h
          {
            description: description,
            help: help,
            helpUrl: helpUrl,
            id: id,
            impact: impact,
            nodes: nodes.map(&:to_h),
            tags: tags,
          }
        end

        private

        def indent
          ->(line) { line.prepend(" " * 4) unless line.nil? }
        end

        def title_message(count)
          "#{count}) #{id}: #{help} (#{impact})"
        end

        def node_count_message
          "The following #{nodes.length} #{nodes.length == 1 ? "node" : "nodes"} violate this rule:"
        end
      end
    end
  end
end

Version data entries

155 entries across 155 versions & 1 rubygems

Version Path
axe-core-api-4.10.1.pre.5294583 lib/axe/api/results/rule.rb
axe-core-api-4.10.2 lib/axe/api/results/rule.rb
axe-core-api-4.10.2.pre.2cca230 lib/axe/api/results/rule.rb
axe-core-api-4.10.1.pre.46a0052 lib/axe/api/results/rule.rb
axe-core-api-4.10.1.pre.7e72b19 lib/axe/api/results/rule.rb
axe-core-api-4.10.1.pre.5e15f96 lib/axe/api/results/rule.rb
axe-core-api-4.10.2.pre.5bd4e5c lib/axe/api/results/rule.rb
axe-core-api-4.10.1.pre.7bf959f lib/axe/api/results/rule.rb
axe-core-api-4.10.1 lib/axe/api/results/rule.rb
axe-core-api-4.10.0.pre.53569f6 lib/axe/api/results/rule.rb
axe-core-api-4.10.1.pre.7a3723a lib/axe/api/results/rule.rb
axe-core-api-4.10.0.pre.d102edb lib/axe/api/results/rule.rb
axe-core-api-4.9.1.pre.7a03090 lib/axe/api/results/rule.rb
axe-core-api-4.9.1.pre.1a5838a lib/axe/api/results/rule.rb
axe-core-api-4.10.0 lib/axe/api/results/rule.rb
axe-core-api-4.10.0.pre.5d7eac5 lib/axe/api/results/rule.rb
axe-core-api-4.9.1.pre.f16172e lib/axe/api/results/rule.rb
axe-core-api-4.9.1.pre.09e659e lib/axe/api/results/rule.rb
axe-core-api-4.9.1.pre.a80eeee lib/axe/api/results/rule.rb
axe-core-api-4.9.0.pre.a02013a lib/axe/api/results/rule.rb