NAME

MooX::Lsub - Very shorthand syntax for bulk lazy builders

VERSION

version 0.002001

SYNOPSIS

  use MooX::Lsub;

  # Shorthand for
  # has foo => ( is => ro =>, lazy => 1, builder => '_build_foo' );
  # sub _build_foo { "Hello" }

  lsub foo => sub { "Hello" };

DESCRIPTION

I often want to use a lot of lazy build subs to implement some plumbing, with scope to allow it to be overridden by people who know what they're doing with an injection library like Bread::Board.

Usually, the syntax of Class::Tiny is what I use for such things.

  use Class::Tiny {
    'a' => sub { },
    'b' => sub { },
  };

Etc.

But switching things to Moo means I usually have to get much uglier, and repeat myself a *lot*.

So this module exists as a compromise.

Additionally, I always forgot to declare use Moo 1.000008 which was the first version of Moo where builder => sub worked, and I would invariably get silly test failures in smokers as a consequence.

This module avoids such problem entirely, and is tested to work with Moo 0.009001.

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.