summaryrefslogtreecommitdiffstats
path: root/static/talks/extending_moose_yapc_na_2010/055.pl.html
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-10-13 02:17:44 -0400
committerJesse Luehrs <doy@tozt.net>2018-10-13 02:37:01 -0400
commitaa403b978860210fcbace7fcdf5830066f3e14e0 (patch)
tree0d8cf5a8855765ec2d83a865a12814d3b04454e7 /static/talks/extending_moose_yapc_na_2010/055.pl.html
parentecd7793846441ba90b57140db19474f295f3e6d7 (diff)
downloadtozt-hugo-aa403b978860210fcbace7fcdf5830066f3e14e0.tar.gz
tozt-hugo-aa403b978860210fcbace7fcdf5830066f3e14e0.zip
import site content
Diffstat (limited to 'static/talks/extending_moose_yapc_na_2010/055.pl.html')
-rw-r--r--static/talks/extending_moose_yapc_na_2010/055.pl.html58
1 files changed, 58 insertions, 0 deletions
diff --git a/static/talks/extending_moose_yapc_na_2010/055.pl.html b/static/talks/extending_moose_yapc_na_2010/055.pl.html
new file mode 100644
index 0000000..84c098a
--- /dev/null
+++ b/static/talks/extending_moose_yapc_na_2010/055.pl.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+<title>055.pl</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script>
+function navigate(e) {
+ var keynum = (window.event) // IE
+ ? e.keyCode
+ : e.which;
+ if (keynum == 8) {
+ window.location = "054.pl" + ".html";
+ return false;
+ }
+ if (keynum == 13 || keynum == 32) {
+ window.location = "056.pl" + ".html";
+ return false;
+ }
+ if (keynum == 73 || keynum == 105) {
+ window.location = "index.html";
+ return false;
+ }
+ return true;
+}
+</script>
+</head>
+<body onkeypress="return navigate(event)">
+<pre> package Command;
+ use Moose::Exporter;
+
+ Moose::Exporter-&gt;setup_import_methods(
+ with_meta =&gt; ['command'],
+ class_metaroles =&gt; {
+ class =&gt; ['Command::Role::Class'],
+ },
+ );
+
+ sub _command_method_meta {
+ my ($meta) = @_;
+ Moose::Meta::Class-&gt;create_anon_class(
+ superclasses =&gt; [$meta-&gt;method_metaclass],
+ roles =&gt; ['Command::Role::Method'],
+ cache =&gt; 1,
+ )-&gt;name;
+ }
+
+ sub command {
+ my ($meta, $name, $code) = @_;
+ $meta-&gt;add_method(
+ $name =&gt; _command_method_meta($meta)-&gt;wrap(
+ $code,
+ name =&gt; $name,
+ package_name =&gt; $meta-&gt;name,
+ associated_metaclass =&gt; $meta
+ ),
+ );
+ }
+</pre>
+</body>