| MozRepl documentation | Contained in the MozRepl distribution. |
MozRepl::Plugin::Repl::Util::HelpUrlFor - Return xulplanet reference url if exists.
version 0.01
use MozRepl;
use MozRepl::Util;
my $repl = MozRepl->new;
$repl->setup({ plugins => { plugins => [qw/Repl::Util::HelpUrlFor/] } });
print $repl->repl_help_url({ source => q|window.document.getElementsByTagName('window')[0]| });
print $repl->repl_help_url({ source => MozRepl::Util->javascript_value(q|@mozilla.org/network/protocol;1?name=view-source|) });
Add repl_help_url() method to MozRepl
Now, MozLab 0.1.6 is include bug in repl.util.helpUrlFor() method. So setup() process is overriding this method.
Return xulplanet reference url if exists.
Context object. See MozRepl.
Hash reference.
JavaScript variable or value.
Return constant value, "repl_help_url". Used by method name adding method to MozRepl object.
Toru Yamaguchi, <zigorou@cpan.org>
Please report any bugs or feature requests to
bug-mozrepl-plugin-repl-util-helpurlfor@rt.cpan.org, or through the web interface at
http://rt.cpan.org. I will be notified, and then you'll automatically be
notified of progress on your bug as I make changes.
Copyright 2007 Toru Yamaguchi, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| MozRepl documentation | Contained in the MozRepl distribution. |
package MozRepl::Plugin::Repl::Util::HelpUrlFor; use strict; use warnings; use base qw(MozRepl::Plugin::Base);
our $VERSION = '0.01';
sub setup { my ($self, $ctx, $args) = @_; $ctx->execute($self->process('setup', { repl => $ctx->repl })); }
sub execute { my ($self, $ctx, $args) = @_; my $cmd = $self->process('execute', { repl => $ctx->repl, source => $args->{source} }); return "" . $ctx->execute($cmd); }
sub method_name { return "repl_help_url"; }
1; # End of MozRepl::Plugin::Repl::Util::HelpUrlFor __DATA__ __setup__ [% repl %].util.helpUrlFor = function(thing) { function xulPlanetXpcomClassUrl(classID) { return "http://xulplanet.com/references/xpcomref/comps/c_" + classID.replace(/^@mozilla.org\//, "").replace(/[;\?\/=-]/g, "") + ".html"; } function xulPlanetXulElementUrl(element) { return "http://xulplanet.com/references/elemref/ref_" + element.nodeName + ".html"; } if (typeof thing == "string") { if (thing.match(/^@mozilla.org\//)) { return xulPlanetXpcomClassUrl(thing); } } else if (thing.QueryInterface && (function () {const NS_NOINTERFACE = 2147500034;try {thing.QueryInterface(Components.interfaces.nsIDOMXULElement);return true;} catch (e if e.result == NS_NOINTERFACE) {}})()) { return xulPlanetXulElementUrl(thing); } }; __execute__ [% repl %].util.helpUrlFor([% source %]); __END__