summaryrefslogtreecommitdiffstats
path: root/static/talks/extending_moose_yapc_na_2010/050z.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/050z.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/050z.pl.html')
-rw-r--r--static/talks/extending_moose_yapc_na_2010/050z.pl.html57
1 files changed, 57 insertions, 0 deletions
diff --git a/static/talks/extending_moose_yapc_na_2010/050z.pl.html b/static/talks/extending_moose_yapc_na_2010/050z.pl.html
new file mode 100644
index 0000000..ca7312d
--- /dev/null
+++ b/static/talks/extending_moose_yapc_na_2010/050z.pl.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<title>050z.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 = "050.pl" + ".html";
+ return false;
+ }
+ if (keynum == 13 || keynum == 32) {
+ window.location = "051.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> and make it pretty
+
+ package AtomicMethod;
+ use Moose::Exporter;
+
+ Moose::Exporter-&gt;setup_import_methods(
+ with_meta =&gt; [qw(atomic_method)],
+ );
+
+ sub _atomic_method_meta {
+ my ($meta) = @_;
+ Moose::Meta::Class-&gt;create_anon_class(
+ superclasses =&gt; [$meta-&gt;method_metaclass],
+ roles =&gt; ['AtomicMethod::Role::Method'],
+ cache =&gt; 1,
+ )-&gt;name;
+ }
+
+ sub atomic_method {
+ my ($meta, $name, $code) = @_;
+ $meta-&gt;add_method(
+ $name =&gt; _atomic_method_meta($meta)-&gt;wrap(
+ $code,
+ name =&gt; $name,
+ package_name =&gt; $meta-&gt;name,
+ associated_metaclass =&gt; $meta
+ ),
+ );
+ }
+</pre>
+</body>