---
name: "Class::Tiny::Antlers"
section: "3pm"
platform: "linux"
package: "libclass-tiny-antlers-perl"
version: "0.024-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::Tiny::Antlers"
---

# Class::Tiny::Antlers(3pm)

Moose-like sugar for Class::Tiny

## NAME

Class::Tiny::Antlers - Moose-like sugar for Class::Tiny

## SYNOPSIS

```
   {
      package Point;
      use Class::Tiny::Antlers;
      has x => (is => 'ro');
      has y => (is => 'ro');
   }

   {
      package Point3D;
      use Class::Tiny::Antlers;
      extends 'Point';
      has z => (is => 'ro');
   }
```

## DESCRIPTION

Class::Tiny::Antlers provides Moose-like `"has"`, `"extends"`, `"with"`, `"before"`, `"after"` and `"around"` keywords for Class::Tiny. (The `"with"` keyword requires Role::Tiny; method modifiers require Class::Method::Modifiers.)

Class::Tiny doesn't support all Moose's attribute options; `"has"` should throw you an error if you try to do something it doesn't support (like triggers).

Class::Tiny::Antlers does however hack in support for `"is => 'ro'"` and Moo-style `"is => 'rwp'"`, clearers and predicates.

From version 0.24, Class::Tiny::Antlers also adds support for \`isa\` and \`coerce\` using Type::Tiny. (I mean, this is a TOBYINK module, so what do you expect?!) Technically MooseX::Types, MouseX::Types, Specio, and Type::Nano should work, but these are less tested.

### Export

By default, Class::Tiny::Antlers exports `"has"`, `"with"` and `"extends"`, and also imports strict into its caller. You can optionally also import `"confess"` and warnings:

```
   use Class::Tiny::Antlers qw( -default confess warnings );
```

And Class::Method::Modifiers keywords:

```
   use Class::Tiny::Antlers qw( -default before after around );
   use Class::Tiny::Antlers qw( -default -cmm );  # same thing
```

If you just want everything:

```
   use Class::Tiny::Antlers qw( -all );
```

Class::Tiny::Antlers also ensures that Class::Tiny's import method is called for your class.

You can put a `"no Class::Tiny::Antlers"` statement at the end of your class definition to wipe the imported functions out of your namespace. (This does not unimport strict/warnings though.) To clean up your namespace more thoroughly, use something like namespace::sweep.

### Functions

- "has $attr, %spec"

  Create an attribute. The specification hash roughly supports `"is"`, `"default"`, `"clearer"` and `"predicate"` as per Moose and Moo.

- "extends @classes"

  Set the base class(es) for your class.

- "with @roles"

  Compose Role::Tiny roles with your class.

- "before $name, \\&code"

  Install a `"before"` modifier using Class::Method::Modifiers.

- "after $name, \\&code"

  Install a `"after"` modifier using Class::Method::Modifiers.

- "around $name, \\&code"

  Install a `"around"` modifier using Class::Method::Modifiers.

- "confess $format, @list"

  `"sprintf"`-fueled version of Carp's `"confess"`.

### Methods

Class::Tiny::Antlers inherits the `"get_all_attributes_for"` and `"get_all_attribute_defaults_for"` methods from Class::Tiny, and also provides:

- "Class::Tiny::Antlers-\>get\_all\_attribute\_specs\_for($class)"

  Gets Moose-style attribute specification hashes for all the class' attributes as a big hashref. (Includes inherited attributes.)

## BUGS

Please report any bugs to \<http://rt.cpan.org/Dist/Display.html?Queue=Class-Tiny-Antlers\>.

## SEE ALSO

Class::Tiny, Role::Tiny, Class::Method::Modifiers, Type::Tiny::Manual.

Moose, Mouse, Moo.

## AUTHOR

Toby Inkster \<tobyink@cpan.org\>.

## COPYRIGHT AND LICENCE

This software is copyright (c) 2013, 2019 by Toby Inkster.

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

## DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
