oga 3.3 → 3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c63e4b4004bf4af6d575ffe513b552cba8282fb259db82423b500f8360f3292a
4
- data.tar.gz: 1e872c97b653e35fef9b7ad0178c07b3976a2bc0c98c324536ae9e3fff077e49
3
+ metadata.gz: d59fc960905c257880ff37e28d05667cf6f8e8366c4f4dc9489992f7267be80a
4
+ data.tar.gz: 6a705ae14ac0488ae0cd9caeefdc28624ac9edb0cd45755c00f0b9f1857c5fcd
5
5
  SHA512:
6
- metadata.gz: ac793a9b79020aeffd99458a5200077c366d939d69ab9284dfc4a16be7f32cc2f469d4c75a0cf7d539f39033e5ba423688009d7da366e33fbb275b688bc23277
7
- data.tar.gz: 490d98fbef2aa6c98f22f6815c4fc16da1573f53d4a686877707f5e57cdd1e6995451deee1521c480e5956624c0fa003470cdb2c4b2a3944a6fb0d52babf852f
6
+ metadata.gz: b32f2033f4484bb8b2213c1c30726d5745cc3f5ff3de3b4001f3a969f34c0910a9620b3a95730ac2fc23e05dd997d8147b57cc51c960e787fbd2ec2093ffce50
7
+ data.tar.gz: 7849944d12cea80379a16b8bbd5e32e17b40694648a1842d0f8ee58caa2849f38ec3599f49bfa7412fd991c8d9394613f1fc12d1eabfcd204bdf62be4c9ab397
data/lib/oga/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Oga
2
- VERSION = '3.3'
2
+ VERSION = '3.4'
3
3
  end # Oga
@@ -46,6 +46,8 @@ module Oga
46
46
  # @param [Oga::XML::NodeSet|Array] nodes
47
47
  def children=(nodes)
48
48
  if nodes.is_a?(NodeSet)
49
+ nodes.owner = self
50
+ nodes.take_ownership_on_nodes
49
51
  @children = nodes
50
52
  else
51
53
  @children = NodeSet.new(nodes, self)
data/lib/oga/xml/node.rb CHANGED
@@ -49,6 +49,8 @@ module Oga
49
49
  # @param [Oga::XML::NodeSet|Array] nodes
50
50
  def children=(nodes)
51
51
  if nodes.is_a?(NodeSet)
52
+ nodes.owner = self
53
+ nodes.take_ownership_on_nodes
52
54
  @children = nodes
53
55
  else
54
56
  @children = NodeSet.new(nodes, self)
@@ -42,11 +42,7 @@ module Oga
42
42
  @owner = owner
43
43
  @existing = {}
44
44
 
45
- @nodes.each_with_index do |node, index|
46
- mark_existing(node)
47
-
48
- take_ownership(node, index) if @owner
49
- end
45
+ take_ownership_on_nodes
50
46
  end
51
47
 
52
48
  # Yields the supplied block for every node.
@@ -289,6 +285,14 @@ module Oga
289
285
  "NodeSet(#{values})"
290
286
  end
291
287
 
288
+ def take_ownership_on_nodes
289
+ @nodes.each_with_index do |node, index|
290
+ mark_existing(node)
291
+
292
+ take_ownership(node, index) if @owner
293
+ end
294
+ end
295
+
292
296
  private
293
297
 
294
298
  # Takes ownership of the given node. This only occurs when the current
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oga
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.3'
4
+ version: '3.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yorick Peterse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-27 00:00:00.000000000 Z
11
+ date: 2022-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -225,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
225
  - !ruby/object:Gem::Version
226
226
  version: '0'
227
227
  requirements: []
228
- rubygems_version: 3.1.2
228
+ rubygems_version: 3.1.6
229
229
  signing_key:
230
230
  specification_version: 4
231
231
  summary: Oga is an XML/HTML parser written in Ruby.