Commit Graph

1030 Commits

Author SHA1 Message Date
Yorick Peterse 8fdf27dcef Removed unused C lexer macros. 2015-03-02 15:43:47 +01:00
Yorick Peterse 8b910c700d Updated EditorConfig file for ruby-ll files. 2015-02-13 09:38:29 +01:00
Yorick Peterse c68b038e53 Added benchmark for the CSS parser. 2015-02-13 09:36:24 +01:00
Yorick Peterse f94461a9ca Upload docs to S3. 2015-01-17 18:00:05 +01:00
Yorick Peterse 2d03ce8e51 Run tests on MRI 2.2. 2015-01-09 21:37:09 +01:00
Yorick Peterse 47a3c5e7f8 Use describe/it instead of context/example.
This keeps things consistent with the general testing guidelines in the Ruby
community. This in turn should hopefully make my life easier as I don't have to
tell people to use this rather odd stlye I was using before.
2015-01-08 23:01:53 +01:00
Yorick Peterse e138aa15ac Removed stray comment in the XPath parser. 2014-12-28 23:55:33 +01:00
Yorick Peterse 746c8052dd Remove all nodes when calling Element#inner_text=
This fixes #64.
2014-12-14 23:32:43 +01:00
Yorick Peterse 739f885078 Use ID instead of VALUE for C Symbols.
Thanks to @cremno for bringing this up.
2014-11-29 12:53:55 +01:00
Yorick Peterse b006289c5f Removed extra space in c/lexer.rl 2014-11-23 22:12:18 +01:00
Yorick Peterse 5e24a3d1e5 Short docs on lexer callback names. 2014-11-23 20:20:14 +01:00
Yorick Peterse 4fa88fcbde Cache rb_intern/symbol lookups in the lexer.
For JRuby this has little to no benefits as it uses strings for method names.
However, both MRI and Rubinius will perform a Symbol lookup whenever rb_intern()
is called. By doing this once for all callback names and caching the resulting
VALUE objects the lexer timings can be reduced by about 25%. In case of the
benchmark benchmark/xml/lexer/string_average_bench.rb this means it runs in
around 500ms instead of 700ms.
2014-11-22 01:53:37 +01:00
Yorick Peterse a10fe855d7 Merge pull request #67 from krasnoukhov/xml-entities
Add missing entities to the decode/encode lists
2014-11-21 01:12:24 +01:00
Dmitry Krasnoukhov 26baf89440 Add missing entities to the decode/encode lists 2014-11-21 01:53:11 +02:00
Yorick Peterse 81c49b5101 Contributing notes on thread-safety/require usage. 2014-11-20 20:09:41 +01:00
Yorick Peterse cbb2815146 Support for inline doctype rules plus newlines.
This adds support for lexing/parsing XML documents that use an IO as input _and_
contain doctype rules with newlines in them.

This fixes #63.
2014-11-18 20:02:55 +01:00
Yorick Peterse f88df486ba README example on using Enumerator for input. 2014-11-17 23:59:30 +01:00
Yorick Peterse b8f9d04b17 Added checksums for v0.2.0 2014-11-17 23:31:40 +01:00
Yorick Peterse ae17e7f137 Clean before building any Gem. 2014-11-17 23:28:57 +01:00
Yorick Peterse 922cee913d Release 0.2.0 2014-11-17 23:26:19 +01:00
Yorick Peterse 6f50e79f15 Added changelog link to the CSS ticket. 2014-11-17 23:24:35 +01:00
Yorick Peterse c4a5e8d4b4 Updated the changelog. 2014-11-17 23:23:13 +01:00
Yorick Peterse 72c8cafcb1 Added README example on using CSS selectors. 2014-11-17 23:21:55 +01:00
Yorick Peterse c253254e24 Prefix version tags with "v".
This makes them stand out as versions a bit more.
2014-11-17 22:42:16 +01:00
Yorick Peterse ad4f650c5d Fixed XML entity encoding/decoding ordering.
Thanks to @krasnoukhov for providing the initial patch, which this commit is
largely based on.

This fixes #49.
2014-11-17 22:39:43 +01:00
Yorick Peterse 675eb562e2 Basic docs on manually creating documents. 2014-11-17 09:13:13 +01:00
Yorick Peterse cd86d5d294 Allow removal of element attributes. 2014-11-17 09:00:40 +01:00
Yorick Peterse 104576b4ad Removed .ruby-version
Oga doesn't really require an exact version during development, so lets get rid
of this.
2014-11-17 00:12:01 +01:00
Yorick Peterse 804646cc5e Don't modify raw namespaces.
When calling Element#available_namespaces the list of namespaces returned by
Element#namespaces must not be modified.
2014-11-17 00:01:16 +01:00
Yorick Peterse a4459c866f Basic docs on using XML namespaces. 2014-11-16 23:59:05 +01:00
Yorick Peterse 6753d6a26d Slightly better docs for the XPath/CSS parsers. 2014-11-16 23:40:19 +01:00
Yorick Peterse 57adabc068 Ensure SAX after_element receives meaningful args
This changes the behaviour of after_element when parsing documents using the SAX
parsing API. Previously it would always receive a nil argument, which is kinda
pointless. This commit changes that by making sure it receives a namespace name
(if any) and the element name.

This fixes #54.
2014-11-16 23:32:32 +01:00
Yorick Peterse 8c8ecce447 Added README note on default namespaces.
This closes #57.
2014-11-16 23:08:32 +01:00
Yorick Peterse 67abe7731e Added CSS selectors to the list of features. 2014-11-16 22:55:44 +01:00
Yorick Peterse e02cb54fa2 Added class/ID selectors to CSS spec. 2014-11-16 22:53:30 +01:00
Yorick Peterse da36c53321 Syntax for wildcard selector in the CSS spec. 2014-11-16 00:36:02 +01:00
Yorick Peterse 3c944f77c9 Added pseudo class syntax to CSS spec. 2014-11-15 21:29:53 +01:00
Yorick Peterse 181a0c3bc8 Added docs on remaining pseudo classes. 2014-11-15 21:20:53 +01:00
Yorick Peterse 02e00019ff Overwrite installation procedure for Travis.
See https://github.com/travis-ci/travis-ci/issues/2821
and https://github.com/rubygems/rubygems/pull/1005.
2014-11-15 19:43:40 +01:00
Yorick Peterse 8b28656087 Cleaned up Travis config. 2014-11-15 19:12:58 +01:00
Yorick Peterse 7990e63678 Use rbx-2 for Travis. 2014-11-15 19:10:43 +01:00
Yorick Peterse 23b408fe4f Cleaned up CSS parser code for counting siblings. 2014-11-15 18:31:08 +01:00
Yorick Peterse 448ff56e38 Fixed CSS eval specs for nth-(first|last)-of-type. 2014-11-15 18:27:26 +01:00
Yorick Peterse b464815577 Fixed AST generation for nth-(first|last)-of-type. 2014-11-15 18:27:15 +01:00
Yorick Peterse 9eead81a7c Fixed AST for :only-of-type 2014-11-15 18:08:26 +01:00
Yorick Peterse 1c301d40e2 Properly fixed AST for first-of-type/last-of-type
This requires keeping track of the current element being processed. This in turn
allows the usage of count() + preceding-sibling/following-sibling.
2014-11-15 17:58:56 +01:00
Yorick Peterse e559b4b89b Corrected :first-of-type eval spec. 2014-11-15 17:20:17 +01:00
Yorick Peterse f1d574f342 Evaluate XPath predicates for every context node.
Instead of evaluating a predicate once for all context nodes, they should
instead be evaluated separately per context node.
2014-11-15 00:31:44 +01:00
Yorick Peterse 6daa3e7a00 Reverted AST changes for first-of-type
Functions can't be used in combination with axes, so I'll just need to fix the
position() function to work properly.
2014-11-14 23:51:46 +01:00
Yorick Peterse 2d6a2be2e8 Revert "Fixed XPath AST for :last-of-type"
Axes can't be used in combination with functions.

This reverts commit b0b572a584.
2014-11-14 23:49:49 +01:00