in reply to Re^3: Web::Magic 0.005
in thread Web::Magic 0.005
Mojo is quite impressive for what it manages to do without dependencies. But really, say I bundled all the other distributions Web::Magic replies upon, and packaged them with Web::Magic. Then I could say it had no dependencies too. Many of Web::Magic's dependencies are indeed modules that I wrote, so I could have easily chosen to package them all into one distribution.
But it seems more logical to provide more, smaller, independently testable and independently usable releases. And rely on a tool to keep track of dependencies between them. Perhaps a tool with a good track record of managing dependencies for Perl modules? Perhaps a tool that has been bundled with Perl for well over a decade?
That 42% (actually 43% according to deps.cpantesters.org today) statistic is very misleading. The site that calculates the statistic acknowledges this.
In practice the only dependencies of Web::Magic which have worrying fail rates are B::Utils which fails a lot on BSD, but seems reliable on other operating systems, and XML::Feed which has some date formatting test cases that seem to sometimes fail. (An Atom test case which expects a datetime in the floating timezone, receives one in UTC.) A force install on XML::Feed will almost certainly still give you a working copy.
That said, Mojo's claimed HTML5 credentials are a bit suspect. The following code illustrates that Mojo::DOM's HTML5 conformance is not quite there yet:
use Modern::Perl; my $html5 = do { local $/ = <DATA> }; { say "HTML::HTML5::Parser:"; use HTML::HTML5::Parser; use XML::LibXML::QuerySelector; my $dom = HTML::HTML5::Parser->new->parse_string($html5); say $dom->querySelector('tbody')->textContent; } say "----"; { say "Mojo::DOM:"; use Mojo::DOM; my $dom = Mojo::DOM->new($html5); $dom->find('tbody')->each(sub{say $_->all_text}); } __DATA__ <!doctype html> <title>Greetings</title> <table><tr><td>Hello World</table> <!-- This is a valid HTML5 document. See http://validator.w3.org/check + -->
For comparison, try the following in a modern, HTML5-capable browser (tested Firefox 3 and Opera 11):
<!doctype html> <title>Greetings</title> <table><tr><td>Hello World</table> <script type="application/ecmascript"> window.alert(document.querySelector('tbody').textContent); </script>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Web::Magic 0.005
by Anonymous Monk on Jan 15, 2012 at 15:09 UTC | |
by Tanktalus (Canon) on Jan 17, 2012 at 21:34 UTC | |
by Anonymous Monk on Jan 17, 2012 at 01:03 UTC |