oga 1.2.1 → 1.2.2

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
  SHA1:
3
- metadata.gz: 49e8bbac0a9f880b8e5b068bb4c9bf684af62124
4
- data.tar.gz: 4dfb3b6c5cbd3c9de6bf0afef43545052386487f
3
+ metadata.gz: d1ef8ce9859d513dc0b7aa68284d825e3f50d548
4
+ data.tar.gz: f463aba9ea8634735834f8c31323893b5dd48f00
5
5
  SHA512:
6
- metadata.gz: 3e487af3bcad6f4e6e7a340a7709be355fa614c766fded6c8643befff56407c621710d00784394b277b59985e8c3b2d3d338606bd07864bdcc37cb5bd22cde46
7
- data.tar.gz: 3d475e191270aab814a09e509cad56f1f0f57a8dd0c6ce3806625401384f586bbd661f2308a8e3f6339a6e1aa1dacc78bfd184d29f506f1c2f7db8fcfb986008
6
+ metadata.gz: 81e745c8341fa7b6cae1f7a9ddbd5d066cacb2ce547ee48680be8d2e2b4898fcaba7e2aa6c4ee16dc7169785f7fd24ca31bed725e913f6fe1abd1e50bffc2caf
7
+ data.tar.gz: 994e333deff715e9172cdddcd876c99d212750cb4b59f41e93765cccef9dc3df6e0e851520c098e3308f8fdcaee0317cd17099e1e2324e6cdccecd5c7c6054be
@@ -137,8 +137,10 @@ module Oga
137
137
  if @owner != Thread.current
138
138
  @mutex.synchronize do
139
139
  @owner = Thread.current
140
+ retval = yield
141
+ @owner = nil
140
142
 
141
- yield
143
+ retval
142
144
  end
143
145
  else
144
146
  yield
@@ -1,3 +1,3 @@
1
1
  module Oga
2
- VERSION = '1.2.1'
2
+ VERSION = '1.2.2'
3
3
  end # Oga
@@ -512,8 +512,11 @@ module Oga
512
512
  end
513
513
  end
514
514
 
515
- add_token(:T_ELEM_END)
515
+ # Prevents a superfluous end tag of a self-closing HTML tag from
516
+ # closing its parent element prematurely
517
+ return if html? && name && name != current_element
516
518
 
519
+ add_token(:T_ELEM_END)
517
520
  @elements.pop
518
521
  end
519
522
 
@@ -31,16 +31,16 @@ module Oga
31
31
  # @yieldparam [Oga::XML::Node] The current node.
32
32
  #
33
33
  def each_node
34
- visit = children.to_a.dup # copy it since we're modifying the array
34
+ visit = children.to_a.reverse
35
35
 
36
36
  until visit.empty?
37
- current = visit.shift
37
+ current = visit.pop
38
38
 
39
39
  catch :skip_children do
40
40
  yield current
41
41
 
42
42
  current.children.to_a.reverse_each do |child|
43
- visit.unshift(child)
43
+ visit << child
44
44
  end
45
45
  end
46
46
  end
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: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yorick Peterse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-30 00:00:00.000000000 Z
11
+ date: 2015-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -219,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  version: '0'
220
220
  requirements: []
221
221
  rubyforge_project:
222
- rubygems_version: 2.4.8
222
+ rubygems_version: 2.4.5
223
223
  signing_key:
224
224
  specification_version: 4
225
225
  summary: Oga is an XML/HTML parser written in Ruby.