canon 0.3.104 → 0.3.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e3fd63643d3d67f7826723ecb3885e56f25084fde362fe5bf17bd906be9e4be
4
- data.tar.gz: e986248f090632d6396f70018d43bbbee0e56dff3e85f8e990c7f5dbf0943033
3
+ metadata.gz: b2537da047da64e91f3c492a6bd5d2888a7946d289bac3752cbc930e5994ccf3
4
+ data.tar.gz: 9ebddee1a5dd6555ed87e493f9dfc20b52996f35876c7a9da7d223e4782adf20
5
5
  SHA512:
6
- metadata.gz: d8cfacdcbd7415b526fcf4c285c89670d5469cce0248c8a1bc9c2e378eaf3746e0adfae9759d64142cbc79b69d23d73c930eff5c17754bcb75cde19081ecd566
7
- data.tar.gz: 0de86c06a2e40c171796512fe7b92749e65cc14d6c98d3c5521f3720ab1a063f8c7f1ebb5eb4ec3c54b6def033b318bad38a6482e782a874003c69af74bc98cb
6
+ metadata.gz: a9c6bf6780b6f487d31888c892d05d88c9084c38c3fa76041d53d9a76f19c46d2a35e052529ff7c8e09ec8b5f03ebac320c9b061efb25f8f749ae523a682e212
7
+ data.tar.gz: 5b55d9efee2f551ee33ec9ba02362ed22017419b119f3227d53e7b84238df878509d2417291748ade02ab2068d502b39fc23f4b525ab77651e3ee1031570fb56
@@ -87,42 +87,42 @@ module Canon
87
87
  expected-doctype-token
88
88
  ].freeze
89
89
 
90
- # The HTML5 lint layer is engine-served (leptris#1771 delivered
91
- # the §13.2.5 parse-error token stream: machine-readable code +
92
- # line + column, RECOVER class). Engine-direct call — the
93
- # documented seam exception (moxml's parse_html does not forward
94
- # the collect_errors option yet; ask filed upstream).
90
+ # The HTML5 lint layer goes through the moxml facade: the
91
+ # leptris adapter forwards collect_errors (leptris#1771's
92
+ # §13.2.5 token stream) and Document#parse_diagnostics answers
93
+ # the machine-readable code plus line/column, so canon no
94
+ # longer reaches into the engine.
95
95
  def self.validate_html5!(input)
96
- doc = Leptris::XML.parse_html(input, mode: :whatwg,
97
- collect_errors: true)
98
- errors = doc.errors.reject do |e|
99
- DOCTYPE_CLASS_CODES.include?(e.code)
96
+ doc = Moxml.new.parse_html(input, mode: :whatwg,
97
+ collect_errors: true)
98
+ errors = doc.parse_diagnostics.reject do |e|
99
+ DOCTYPE_CLASS_CODES.include?(e[:code])
100
100
  end
101
101
  return if errors.empty?
102
102
 
103
103
  error = errors.first
104
104
  raise Canon::ValidationError.new(
105
- "[#{error.code}] #{error.message}",
105
+ "[#{error[:code]}] #{error[:message]}",
106
106
  format: :html,
107
- line: error.line,
108
- column: error.column,
107
+ line: error[:line],
108
+ column: error[:column],
109
109
  details: build_error_details(errors),
110
110
  )
111
111
  end
112
112
 
113
113
  # Build error details from multiple errors
114
114
  #
115
- # @param errors [Array<Leptris::XML::SyntaxError>] Array of errors
115
+ # @param errors [Array<Hash>] moxml parse diagnostics
116
116
  # @return [String, nil] Combined error details
117
117
  def self.build_error_details(errors)
118
118
  significant = errors.reject do |e|
119
- DOCTYPE_CLASS_CODES.include?(e.code)
119
+ DOCTYPE_CLASS_CODES.include?(e[:code])
120
120
  end
121
121
  return nil if significant.size <= 1
122
122
 
123
123
  significant[1..3].map do |e|
124
- msg = e.message
125
- msg += " (line #{e.line})" if e.respond_to?(:line) && e.line
124
+ msg = e[:message]
125
+ msg += " (line #{e[:line]})" if e[:line]
126
126
  msg
127
127
  end.join("; ")
128
128
  end
data/lib/canon/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Canon
4
- VERSION = "0.3.104"
4
+ VERSION = "0.3.106"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.104
4
+ version: 0.3.106
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-20 00:00:00.000000000 Z
11
+ date: 2026-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.9.373
47
+ version: 1.9.376
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.9.373
54
+ version: 1.9.376
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: moxml
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.5.147
61
+ version: 0.5.149
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.5.147
68
+ version: 0.5.149
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: paint
71
71
  requirement: !ruby/object:Gem::Requirement