Release 0.3.2

This commit is contained in:
Yorick Peterse 2015-04-15 11:38:09 +02:00
parent 4c1e9a0be8
commit a08829add5
4 changed files with 72 additions and 1 deletions

View File

@ -3,6 +3,75 @@
This document contains details of the various releases and their release dates.
Dates are in the format `yyyy-mm-dd`.
## 0.3.2 - 2015-04-15
### Support for unquoted HTML attribute values
Oga can now lex/parse HTML attribute values that don't use quotes. For example,
the following is valid HTML:
<a href=foo>Foo</a>
And so is this:
<a href=foo/bar>Foo/bar</a>
See Github issue <https://github.com/YorickPeterse/oga/issues/94> and the
following commits for more information:
* bc9b9bc9537d9dc614b47323e0a6727a4ec2dd04
* d892ce97874ed0f1382df993c40a452530025f02
* afbb5858122d5aece252b957b3988787ed76168f
* 23a441933ac659933646418ed62ba188bb20ff65
### Counting newlines in XML declarations
The XML lexer has been adjusted so that it counts newlines when processing
XML declarations. While these newlines are not exposed to the resulting
`Oga::XML::*` instances they are used when reporting errors. Previously the
lexer wouldn't count newlines in XML declarations, leading to error messages
referring to incorrect line numbers.
This was fixed in commit e942086f2df0204fc7756c3df260297f5cadc7c2.
### Better lexer support for CDATA, comments and processing instructions
The XML lexer has been tweaked so it can handle multi-line CDATA tags, comments
and processing instructions, both when using a String and IO (or similar) as
input.
See Github issue <https://github.com/YorickPeterse/oga/issues/93> and the
following commits for more information:
* b2ea20ba615953254554565e0c8b11587ac4f59c
* ea8b4aa92fe746a9da19e94c3edf68b41495d992
* 8acc7fc743c9492eed2d9c885c22c1b5bec06d0f
### Performance Improvements
To improve performance of the XPath evaluator (as well as generic code using
Oga) the following methods now cache their return values:
* `Oga::XML::Element#available_namespaces`
* `Oga::XML::Element#namespace`
* `Oga::XML::Node#html?`
These cache of these methods is flushed automatically when needed. For example,
registering a new namespace will flush the cache for
`Element#available_namespaces` and `Element#namespace`.
The performance of `Oga::XML::Traversal#each_node` has also been optimized,
cutting down the amount of object allocations significantly.
Combined these improvements should make XPath evaluation roughly 4 times faster.
See the following commits for more information:
* 739e3b474cb562f774a0e80f5f33b3b18ec7d8c5
* b42f9aaf322c6bb67a3ddfd2b350d72a45c1fd8f
* fa838154fc19c938355e1d96c5e2dd4d8c299ba3
* b0359b37e536aef172b95b54dea91198b9512e15
## 0.3.1 - 2015-04-08
Oga no longer decodes any HTML entities that appear inside the body of a

View File

@ -0,0 +1 @@
dc383998714d4f8199f8b7ad9067763ff78a3a566e64cf5b3d936ff894af5689ae8e2060e9445709a996009a6342219809d2e19a2a82170f9cd2270f5100f88c

View File

@ -0,0 +1 @@
08e279b83b2d79b06509d977d2a368cf5ac74524f2f0d5e7e04d444af3d56678d6c64095af87eb485c723c4f75796d95e7c82a6b842715aa4db11026f4f1ea5f

View File

@ -1,3 +1,3 @@
module Oga
VERSION = '0.3.1'
VERSION = '0.3.2'
end # Oga