diff --git a/htmlparser-0.2-1.rockspec b/htmlparser-0.2-1.rockspec
new file mode 100644
index 0000000..91cc9d9
--- /dev/null
+++ b/htmlparser-0.2-1.rockspec
@@ -0,0 +1,27 @@
+package = "htmlparser"
+version = "0.1-1"
+source = {
+ url = "git://github.com/wscherphof/lua-htmlparser.git",
+ branch = "v0.1"
+}
+description = {
+ summary = "Parse HTML text into a tree of elements with selectors",
+ detailed = [[
+ Call parse() to build up a tree of element nodes. Each node in the tree, including the root node that is returned by parse(), supports a basic set of jQuery-like selectors. Or you could walk the tree by hand.
+ ]],
+ homepage = "http://wscherphof.github.com/lua-htmlparser/",
+ license = "MIT"
+}
+dependencies = {
+ "lua >= 5.2",
+ "set >= 0.1",
+ "lunitx >= 0.6"
+}
+build = {
+ type = "builtin",
+ modules = {
+ htmlparser = "src/htmlparser.lua",
+ ["htmlparser.ElementNode"] = "src/htmlparser/ElementNode.lua",
+ ["htmlparser.voidelements"] = "src/htmlparser/voidelements.lua"
+ }
+}
\ No newline at end of file
diff --git a/src/htmlparser/ElementNode.lua b/src/htmlparser/ElementNode.lua
index 4d8fc3c..d6c99e8 100644
--- a/src/htmlparser/ElementNode.lua
+++ b/src/htmlparser/ElementNode.lua
@@ -141,9 +141,10 @@ local function select(self, s)
resultset = Set:new()
for subject in pairs(subjects) do
local star = subject.deepernodes
- if childrenonly then star = Set:new(subject.nodes) childrenonly = false end
+ if childrenonly then star = Set:new(subject.nodes) end
resultset = resultset + star
end
+ childrenonly = false
if part == "*" then goto nextpart end
local excludes, filter = Set:new()
for t, w in string.gmatch(part,
diff --git a/tst/init.lua b/tst/init.lua
new file mode 100644
index 0000000..fc80b37
--- /dev/null
+++ b/tst/init.lua
@@ -0,0 +1,47 @@
+require("luarocks.loader")
+-- Omit next line in actual module clients; it's only to support development of the module itself
+package.path = "../src/?.lua;" .. package.path
+
+local lunitx = require("lunitx")
+module("html", lunitx.testcase, package.seeall)
+
+local htmlparser = require("htmlparser")
+local tree, sel
+
+function test_descendants()
+ tree = htmlparser.parse([[
+ 1
+ 1.1
+ 1.2
+ 1.2.1
+
+
+ 2
+ 2.1
+ 2.2
+ 2.2.1
+
+
+ ]])
+ sel = tree("parent child")
+ assert_equal(6, sel:len(), 'parent child')
+end
+
+function test_children()
+ tree = htmlparser.parse([[
+ 1
+ 1.1
+ 1.2
+ 1.2.1
+
+
+ 2
+ 2.1
+ 2.2
+ 2.2.1
+
+
+ ]])
+ sel = tree("parent > child")
+ assert_equal(4, sel:len(), 'parent > child')
+end
\ No newline at end of file