Awesome job @cv711 !  I really appreciate this pull request and am glad you find this library useful!

I think I see a small bug/place for optimization in this `for` loop.  It sucks that we have to iterate over all of the attributes of the node, but I suppose that's the only way to handle something stupid like 'hReF'.  The first issue is that `String.prototype.match` may return `null`, so trying to access element `0` of `null` will throw a `TypeError`.  The test case doesn't expose this because the href node only has one attribute, which happens to match.  The second is that we iterate over all attributes, even after finding the match!  In the test case, there is only one attribute, but someone could add a bunch.  We can optimize this block by doing something like:

```coffeescript
for j in [0...attributes.length]
  match = attributes[j].nodeName.match /HREF/i
  if match
    list.push file: childNode.getAttribute(match[0]).trim()
    break
```

Would you prefer to add this recommendation to this pull request, or shall I?  I don't care if you rebase or not.