MooX-Press
==========
Created: 2019-10-22
Home page: <https://metacpan.org/release/MooX-Press>
Bug tracker: <https://github.com/tobyink/p5-moox-press/issues>
Maintainer: Toby Inkster (TOBYINK) <tobyink@cpan.org>
0.086 2022-07-19
[ Packaging ]
- Raise the minimum versions of certain required dependencies.
[ Other ]
- Updated: Cope with changes to Slurpy in latest
Type::Params/Types::Standard. This actually simplifies things.
0.085 2022-06-19
[ Bug Fixes ]
- Optimized signatures were sometimes causing a goto(HashRef) to happen.
0.084 2022-06-16
[ Packaging ]
- Raise the minimum versions of certain required dependencies.
0.083 2020-11-06
- Updated: Special support for default=>Ask::Q(...)
0.082 2020-10-13
- Allow certain features previously only supported in classes and roles
(`with`, `extends`, `can`, `constant`, `multimethod`, `symmethod`) to
work for the factory itself.
0.081 2020-10-10
- Added: Support for Sub::SymMethod.
- When MooX::Press attempts to build a child class before a parent class,
it will now notice and hopefully build the parent class first.
0.080 2020-10-09
- Updated: Support for Sub::MultiMethod 0.901+.
0.079 2020-09-30
[ Bug Fixes ]
- Fix for Type::Registry->for_class being called before Type::Registry was
loaded.
0.078 2020-09-23
- Added: Factories now have get_class() and get_role() methods.
0.077 2020-09-23
[ Bug Fixes ]
- Correct a couple of typos in code.
0.076 2020-09-23
- MooX::Press now supports a `definition_context` in
class/role/attribute/method specs.
- Zydeco::Lite `class`, `role`, `interface`, `abstract_class`, `has`,
`method`, `factory`, `multi_method`, and `multi_factory` keywords now
include a `definition_context` in the specs they generate.
0.075 2020-09-19
[ Bug Fixes ]
- Prevent type library from complaining about type constraints for 'tag'
roles being added multiple times.
0.074 2020-09-18
[ Documentation ]
- Add Zydeco::Lite extended example.
- Update Zydeco::Lite formal syntax.
[ Packaging ]
- Dynamically calculate dependency list during build process.
[ Other ]
- MooX::Press will load MooseX::NonMoose when it's needed.
- MooX::Press will load MouseX::Foreign when it's needed.
- MooX::Press will load UNIVERSAL::DOES on Perl older than v5.10.
- Zydeco::Lite allows apps, classes, roles, abstract classes, and
interfaces to take a scalar reference as their name, like methods can.
0.073 2020-09-18
- MooX::Press now creates type constraints for 'tag' roles.
0.072 2020-09-17
- Added: Zydeco::Lite now supports anonymous methods.
0.071 2020-09-17
[ Bug Fixes ]
- Fix occasional errors figuring out the type name for classes named with
a leading + sign.
0.070 2020-09-17
[ Bug Fixes ]
- Generator packages if called with leading :: should strip it before
continuing.
0.069 2020-09-17
[ Documentation ]
- Documentation of scoping in Zydeco::Lite.
[ Other ]
- Allow many keywords to appear outside an app in Zydeco::Lite.
- MooX::Press->patch_package now supports `extends`.
0.068 2020-09-16
[ Bug Fixes ]
- MooX::press now strips leading `main::` when generating type constraint
names.
[ Documentation ]
- Better documentation of `coerce` in Zydeco::Lite.
- Document importing functions from Zydeco::Lite.
[ Other ]
- MooX::Press now forbids roles from having a multifactory. (They could
already not have factories, so this was an inconsistency.)
- Zydeco::Lite's before_apply and after_apply now get passed 'role' or
'class' as an argument indicating what kind of package the role is being
applied to.
0.067 2020-09-15
- Added: MooX::Press::make_absolute_package_name() function.
- Treat leading `main::` like leading `::`.
0.066 2020-09-15
[ Bug Fixes ]
- Ensure Moose/Mouse classes are mutable before attempting to add
attributes to them.
[ Test Suite ]
- Fix for Perl 5.8.
[ Other ]
- Refactor code for run-time modification of packages, moving code from
Zydeco::Lite to MooX::Press so it can be shared with Zydeco.
0.065 2020-09-14
- Added: Brand new Zydeco::Lite module.
- Added: Factory packages now support before/after/around.
- Added: Multi factories are now supported.
0.064 2020-09-03
- Added: Class and role generators can generate multimethods.
- Added: Role generators can generate before_apply/after_apply hooks.
- Refactor how :coerce / :coercion attributes are handled.
- Refactor how factory methods are installed.
0.063 2020-09-01
- Added: Factories are now exporters and can export factory methods on
request. The exported subs curry the invocant so are not called as
methods.
0.062 2020-08-25
- Added: Support :coerce / :coercion attributes on methods, multimethods,
and factory methods to also install them as a coercion.
0.061 2020-04-28
[ Bug Fixes ]
- Fix regexps for extracting method bodies.
0.060 2020-04-25
[ Bug Fixes ]
- Eliminate closure warnings.
- Eliminate printf warnings.
- Stop wrapping method bodies in do blocks because it conflicts with
lvalue methods in versions of Perl too old to optimize the do block
away.
0.059 2020-04-25
- Use MooX::TypeTiny again, but only versions 0.002001 and higher.
0.058 2020-04-08
- Stop using MooX::TypeTiny for now; it introduces some weird coercion
bugs.
0.057 2020-02-24
- Eliminate some warnings when `make_attribute` is called to add an
attribute to an existing class.
0.056 2020-02-24
- The `is` option for attributes now defaults to 'ro', but you can change
the default using a `default_is` option.
0.055 2020-02-20
[ Bug Fixes ]
- Eliminate 'used only once' warning from some roles.
[ Packaging ]
- Require latest stable Type::Params.
0.054 2020-02-18
- Refactoring of `_make_package` to split out attribute handling into a
separate `install_attributes` method.
0.053 2020-02-18
- Added: Role::Hooks support.
- MooX::Press now throws an error if you use certain options in classes
that make no sense, like `requires`.
- The `begin` and `end` options are now allowed to be arrayrefs.
0.052 2020-02-17
- Added: The factory package now has a %PACKAGES variable.
0.051 2020-02-17
[ Bug Fixes ]
- Remove a debugging line that was included in 0.049.
[ Other ]
- Allow multiple `use MooX::Press` statements to have the same prefix.
0.050 2020-02-16
- MooX::Press will now interpret `handles => ARRAYREF` as if the array
were a hash, instead of relying on the underlying delegation
implementation to interpret it.
- Public attribtues can now have private (lexical) accessors and
delegations.
0.049 2020-02-16
- Module::Runtime and Import::Into were already dependencies, so make more
use of them instead of just putting `use` statements in stringy eval.
0.048 2020-02-15
- Don't issue warning about 'Local' factory if it was specified
explicitly; assume they know what they're doing.
0.047 2020-02-15
- Improve defaults of `prefix` and `factory_package`, especially when
caller is `main`.
0.046 2020-02-14
[ Packaging ]
- Require Lexical::Accessor 0.012 to avoid Hash::FieldHash requirement.
- Require Moo 2 because Moo 1 is just so old.
0.045 2020-02-14
- Added: Integrate Lexical::Accessor support.
0.044 2020-02-12
[ Packaging ]
- Bump minimum required version of Sub::HandlesVia.
- Make Sub::MultiMethod required rather than an optional dependency, so
that other modules using MooX::Press and MooX::Pression don't need to
depend on it explicitly.
0.043 2020-02-12
[ Bug Fixes ]
- If methods or method modifiers were given as a hashref rather than a
coderef, MooX::Press would assume that meant there was a signature and
later complain about the signature being undef, but there are other
reasons to sometimes give a method or method modifier as a hashref, so
this assumption is no longer made.
[ Test Suite ]
- Test that bare attributes work.
[ Other ]
- Added: MooX::Press::keywords now exports `bare` like `rw`, `ro`, `rwp`,
and `lazy`.
0.042 2020-02-11
- If a signature includes `head` and `tail` options, reify any string type
constraints found there. This feature assumes you're using Type::Params
1.009002 or above.
- The `confess` exported by MooX::Press::Keywords no longer passes a
single argument through sprintf; only calling sprintf when multiple
arguments are given.
0.041 2020-02-09
- Added: Factory packages now have a `qualify` method allowing them to
translate unprefixed class names to fully-qualified ones.
- Added: MooX::XSConstructor is loaded and used if it's installed.
0.040 2020-02-01
[ Bug Fixes ]
- Remove some Data::Dumper stuff mistakenly included in last release.
0.039 2020-02-01
[ Bug Fixes ]
- In the last few releases (since 0.032?), method signatures were
mistakenly being recompiled every method call, which was SLOW.
0.038 2020-02-01
- Abstract base classes throw exceptions from `BUILD` instead of `new`.
0.037 2020-01-31
- Process `with` much later to ensure that methods (including accessors,
delegated methods, multimethods, and constants) have been installed
which might be needed to satisfy role requirements.
0.036 2020-01-31
- Added: Abstract base classes.
- Added: Interfaces.
- Using class-specific things like `factory` in a role now results in an
error instead of being silently ignored.
0.035 2020-01-28
[ Bug Fixes ]
- Don't install multimethod dispatchers into roles.
0.034 2020-01-28
[ Bug Fixes ]
- Skip trying to just-in-time look for a role definition if the role ends
in a question mark; that role will already be built just-in-time.
0.033 2020-01-28
- Added: Sub::MultiMethod support (optional dependency).
- Added: Support `overload` in classes.
- Build roles in an intelligent order.
- Process role generators before class generators.
0.032 2020-01-24
- Added: MooX::Press->wrap_coderef utility.
0.031 2020-01-23
[ Bug Fixes ]
- Fix broken signatures-as-coderefs feature.
[ Documentation ]
- Document signatures-as-coderefs feature.
[ Other ]
- Added: Add `optimize` feature for method signatures.
0.030 2020-01-23
[ Bug Fixes ]
- Bugfix for `import`.
0.029 2020-01-23
- Allow `import` option to apply to class/role generators.
- Removed: MooX::Press::Keywords no longer imports Try::Tiny for you.
0.028 2020-01-23
[ Packaging ]
- Require Sub::HandlesVia 0.004.
[ Other ]
- Added: Add an `import` option.
- Smooth over differences between `has` in Moo, Moose, and Mouse.
0.027 2020-01-21
- Added: Support for Sub::HandlesVia.
0.026 2020-01-18
[ Bug Fixes ]
- Fix `has` for Moose/Mouse classes and roles.
[ Other ]
- Better handling of type lookups from class/role generators.
0.025 2020-01-17
- Saner API for slurpies in signatures.
0.024 2020-01-17
- Added: Class and role generators now have generate_bleh methods in the
factory.
0.023 2020-01-17
- Added: class_generator and role_generator.
0.022 2020-01-16
- Added: Integration with MooX::Enumeration/MooseX::Enumeration.
- Added: Roles now have `requires`.
0.021 2020-01-15
[ Bug Fixes ]
- Prevent global options from overriding per-package options.
[ Other ]
- Added: Method modifiers now support signatures.
- String 'from' types in coercions are now interpreted as type names
instead of class/role names. This is for consistency with signatures.
0.020 2020-01-13
- Added: Provide a `begin` option to run callback early in class/role
definition.
- Smarter Type::Registry stuff.
0.019 2020-01-10
[ Documentation ]
- Better type constratin documentation.
[ Other ]
- Added: Method signatures.
- Allow roles listed under `with` to be suffixed with a question mark.
- Default `factory_package` to `prefix` instead of `caller`.
0.018 2020-01-08
[ Documentation ]
- Fix typo.
0.017 2020-01-08
- Added: MooX::Press::Keywords
0.016 2020-01-08
[ Documentation ]
- Documentation of @ and % sigils for `isa`.
- Other improvements to type constraint related documentation.
[ Other ]
- Added: factory_package_can
- Added: type_library_can
0.015 2020-01-07
[ Bug Fixes ]
- Fix interaction of automatic package prefixes and sigils.
0.014 2020-01-07
- Added: Allow type names given as strings to be prefixed with @ or % to
indicate ArrayRef of or HashRef of.
0.013 2019-11-06
- Added: Allow classes to have multiple factories to create them.
0.012 2019-11-06
[ Bug Fixes ]
- Fix for newer versions of Moo::Role.
0.011 2019-11-05 Treason
- Added: Support `type` in attribute specs.
0.010 2019-11-05 Gunpowder
[ Bug Fixes ]
- Fixes for methods being redefined in subclasses.
[ Other ]
- Added: Allow coderefs to be used to modify multiple methods in
before/after/around, like Moo does.
- Added: Top-level shortcuts for creating classes and roles.
- Internal cleanups.
0.009 2019-10-31
[ Documentation ]
- Fix tree/leaf example.
0.008 2019-10-30
- Added: Give each class a FACTORY method to return the factory package
name.
- Added: Give the factory package a type_library method to return the type
library name.
0.007 2019-10-25
[ Bug Fixes ]
- Fixes for Moo 2.003_005 which changes how Moo's keyword subs are
tracked.
0.006 2019-10-24
[ Documentation ]
- Document that multiple inheritance is supported.
- Fix example in pod.
[ Other ]
- Less hacky way of calling Moo's has, extends, and with functions.
- Throw an error if people try to use extends in roles.
- You can now add a '+' before a class name to indicate that it should be
prefixed by the parent class name.
0.005 2019-10-24
[ Bug Fixes ]
- Fixes for undef type_library.
[ Documentation ]
- Bundle a simple example, HTTP::Tiny::Objects.
[ Other ]
- Suppress loading MooX::TypeTiny if it's not needed.
0.004 2019-10-23
[ Packaging ]
- Declare dependency on namespace::autoclean.
[ Other ]
- Added: Set $VERSION and $AUTHORITY in generated packages.
- Better handling of caller option.
0.003 2019-10-23
[ Packaging ]
- Remove old test script from tarball.
0.002 2019-10-23
[ Bug Fixes ]
- Fix syntax for Perl < 5.22.
0.001 2019-10-23 Initial release