Class: AxeCuprite::Results
- Inherits:
-
Object
- Object
- AxeCuprite::Results
- Defined in:
- lib/axe/cuprite/results.rb
Overview
Wraps the (slimmed) payload returned by axe.run. We deliberately only carry ‘violations` and `incomplete` across the CDP boundary plus a little metadata — the full results object (with `passes`/`inapplicable`) can be huge.
The wrappers are read-only: ‘@raw` is deep-frozen at construction, so `raw` and `to_h` expose the live underlying hash safely (callers cannot mutate it).
Ownership note: ‘Results` (and the nested `Violation`/`Node`/`ContrastData` wrappers) **take ownership of the hash passed in and deep-freeze it in place** — they do not copy first. For the internal flow this is safe (the payload comes fresh off the CDP boundary), but if you construct `Results.new(hash)` yourself, don’t pass — or hold onto — a hash you intend to mutate afterward, or you’ll hit a ‘FrozenError`. Dup it first if you need a mutable copy.
Instance Attribute Summary collapse
-
#raw ⇒ Object
readonly
Returns the value of attribute raw.
Instance Method Summary collapse
-
#incomplete ⇒ Object
Nodes axe could not decide on (needs review).
-
#initialize(raw) ⇒ Results
constructor
A new instance of Results.
- #passes? ⇒ Boolean (also: #clean?)
- #test_engine ⇒ Object
- #timestamp ⇒ Object
- #to_h ⇒ Object
- #url ⇒ Object
- #violations ⇒ Object
Constructor Details
#initialize(raw) ⇒ Results
Returns a new instance of Results.
39 40 41 |
# File 'lib/axe/cuprite/results.rb', line 39 def initialize(raw) @raw = DeepFreeze.call(raw || {}) end |
Instance Attribute Details
#raw ⇒ Object (readonly)
Returns the value of attribute raw.
37 38 39 |
# File 'lib/axe/cuprite/results.rb', line 37 def raw @raw end |
Instance Method Details
#incomplete ⇒ Object
Nodes axe could not decide on (needs review). Surfaced but never fails.
48 49 50 |
# File 'lib/axe/cuprite/results.rb', line 48 def incomplete @incomplete ||= Array(@raw["incomplete"]).map { |v| Violation.new(v) } end |
#passes? ⇒ Boolean Also known as: clean?
52 53 54 |
# File 'lib/axe/cuprite/results.rb', line 52 def passes? violations.empty? end |
#test_engine ⇒ Object
65 66 67 |
# File 'lib/axe/cuprite/results.rb', line 65 def test_engine @raw["testEngine"] end |
#timestamp ⇒ Object
61 62 63 |
# File 'lib/axe/cuprite/results.rb', line 61 def @raw["timestamp"] end |
#to_h ⇒ Object
69 70 71 |
# File 'lib/axe/cuprite/results.rb', line 69 def to_h @raw end |
#url ⇒ Object
57 58 59 |
# File 'lib/axe/cuprite/results.rb', line 57 def url @raw["url"] end |