Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Does magical stuff with barewords in Moose methods

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 t
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Changes
Octocat-spinner-32 Makefile.PL
Octocat-spinner-32 README
README
NAME
    MooseX::Barewords - Turn barewords into attribute/argument getters

DESCRIPTION
    The idea is to make $self look like an object and avoid shifting off
    arguments given to a method.

    This module is a proof of concept and will probably never be published
    on CPAN.

SEE ALSO
    MooseX::Method::Signatures, subs::auto, self and selfvars.

SYNOPSIS
     package Foo;

     use MooseX::Barewords;

     has foo => ( is => 'ro' );

     sub my_method {
        print self->foo; # this will always return the attribute value
        print foo;       # will print whatever $self->foo holds
                         # unless 'foo' is set in argument list
                         # should that be considered a bug or feature..? ;)
     }

     sub add {
        print a + b;
     }

     # this will make 'foo' bareword return 42 instead of
     # what $self->foo holds.
     $self->my_method(foo => 42); 

     # will print 66
     $self->add(a => 42, b => 24);

     # will die since "a" and "b" are not given as arguments
     $self->add(foo => 1);

FUNCTIONS
  self
     $self = self;

    Returns the current object in caller method.

  has
     has $name => %args;

    Same as Moose::has(), but with some extra sugar to make barewords work
    as expected.

    Accessor will be prefixed with "__", but can still be accessed by $name:

     $acc = "__$name";
     $self->$name eq $self->$acc; # true

  init_meta
     $class->init_meta(%options);

    Called on "import()". Will set up Variable::Magic on caller package and
    turn all barewords into subs.

INTERNAL FUNCTIONS
  get_attr
     $value = get_attr($name, @args);

    Will return either the argument or attribute valued named $name, or
    confess if no such arg/attr exists.

    Arguments will be prioritized over attributes names.

  get_arg
     $value = get_arg($name, $level);

    Will return the argument named $name or confess if no such argument
    exists in caller method.

  init_wizard
     $wiz = init_wizard();

    Will return a Variable::Magic wizard, used on caller package.

  corelist_map
     %corelist = corelist_map();

    Returns a hash, where the keys are the names of the core functions.

AUTHOR
    Jan Henning Thorsen

Something went wrong with that request. Please try again.