MozRepl::Plugin::Repl::Util::HelpUrlFor - Return xulplanet reference url if exists.


MozRepl documentation Contained in the MozRepl distribution.

Index


Code Index:

NAME

Top

MozRepl::Plugin::Repl::Util::HelpUrlFor - Return xulplanet reference url if exists.

VERSION

Top

version 0.01

SYNOPSIS

Top

    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|) });

DESCRIPTION

Top

Add repl_help_url() method to MozRepl

METHODS

Top

setup($ctx, $args)

Now, MozLab 0.1.6 is include bug in repl.util.helpUrlFor() method. So setup() process is overriding this method.

execute

Return xulplanet reference url if exists.

$ctx

Context object. See MozRepl.

$args

Hash reference.

source

JavaScript variable or value.

method_name()

Return constant value, "repl_help_url". Used by method name adding method to MozRepl object.

AUTHOR

Top

Toru Yamaguchi, <zigorou@cpan.org>

BUGS

Top

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 & LICENSE

Top


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__