Skip to content

Commit

Permalink
Ensure compatibility with Nokogiri
Browse files Browse the repository at this point in the history
Nokogiri v1.12 introduced a breaking change related to namespace
inheritance of reparented child nodes. This commit using the feature added in
v1.12.4 to opt

- for new versions of Nokogiri that support it, set `Document#namespace_inheritance`
- intermediate versions of Nokogiri will be avoided via gemspec version specification
- old versions of Nokogiri will continue to work

See sparklemotion/nokogiri#2320 for more details.

Fixes ebeigarts#30
  • Loading branch information
flavorjones committed Aug 29, 2021
1 parent dee9d04 commit 244cbf1
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
1 change: 1 addition & 0 deletions lib/signer.rb
Expand Up @@ -65,6 +65,7 @@ def initialize(document, noblanks: true, wss: true, canonicalize_algorithm: :c14
self.document = Nokogiri::XML(document.to_s) do |config|
config.noblanks if noblanks
end
self.document.namespace_inheritance = true if self.document.respond_to?(:namespace_inheritance)
self.digest_algorithm = :sha1
self.wss = wss
self.canonicalize_algorithm = canonicalize_algorithm
Expand Down
2 changes: 1 addition & 1 deletion signer.gemspec
Expand Up @@ -21,5 +21,5 @@ Gem::Specification.new do |gem|
gem.add_development_dependency 'rake'
gem.add_development_dependency 'rspec'

gem.add_runtime_dependency 'nokogiri', '>= 1.5.1'
gem.add_runtime_dependency 'nokogiri', '>= 1.5.1', '!=1.12.3', '!=1.12.2', '!=1.12.1', '!=1.12.0'
end

0 comments on commit 244cbf1

Please sign in to comment.