Revision history for Bread-Board
0.36 2017-09-25
[ BUG FIXES ]
- fix pod error. (Mohammad S Anwar, GH#63)
[ MISC ]
- Reverting the changes of #53, as it breaks a few packages that are
using `also => 'Bread::Board'` in their import, and the benefit we
get from freeing ourselves from Moose::Exporter isn't that huge.
[ STATISTICS ]
- code churn: 4 files changed, 40 insertions(+), 44 deletions(-)
0.35 2017-07-31
[ BUG FIXES ]
- fixed Bread::Board::Dumper to dump parameterized containers -
previously it would just ignore them entirely (#56, Dave Rolsky)
- Moo classes were losing their method modifiers because of bad
interaction with Class::MOP::class_of(). (GH#61)
[ ENHANCEMENTS ]
- Using Bread::Board no longer enables strict and warnings in the
calling package. (#53, Dave Rolsky) - Bread::Board::Dumper now sorts
services and sub containers - previously these came out in a random
order each time (#56, Dave Rolsky) - allow a service or literal to be
undefined. (#54, Dave Rolsky)
[ STATISTICS ]
- code churn: 13 files changed, 425 insertions(+), 237 deletions(-)
0.34 2016-03-28
- Add test messages to tests which did not have them, (#50, Alex
Balhatchet)
[ DOCUMENTATION ]
- add missing module abstracts. (GH#49, Alex Balhatchet, GH#16,
Sterling Hanenkamp)
[ ENHANCEMENTS ]
- SetterInjection can now accept any constructor. (#43, dakkar)
[ STATISTICS ]
- code churn: 37 files changed, 462 insertions(+), 395 deletions(-)
0.33 2015-04-26
- add 'literal' keyword (Yanick Champoux, #31)
- added documentation for most of the classes (dakkar, sponsored by
Net-a-Porter.com)
[ STATISTICS ]
- code churn: 35 files changed, 1016 insertions(+), 375 deletions(-)
0.32 2014-06-03
- fixes to arrayref dependencies (dakkar, #35)
0.31 2014-05-08
- allow specifying dependency values as arrayrefs, which will resolve to
an arrayref containing the resolved service values (dakkar, #34)
0.30 2014-02-02
- fix deprecated use of Class::MOP::load_class (Caleb Cushing, #33)
0.29 2013-11-21
- Fix deprecated enum syntax
0.28 2013-08-30
- Allow overriding of services and containers. This is useful when using
the common pattern of "sub BUILD { my $self = shift; container $self =>
as { ... } }" since the BUILD method in a subclass can modify existing
services and containers that were defined in a superclass, rather than
only being able to replace them (Florian Ragwitz, #26, #27).
0.27 2013-08-06
- allow the 'container $obj' sugar for parameterized containers (Florian
Ragwitz, #25)
0.26 2013-08-01
- allow cloning containers with parameterized subcontainers (Florian
Ragwitz, #22)
- allow referencing parent services from parameterized subcontainers
(Florian Ragwitz, #23)
- deprecate special case in path traversal where a path component with
the name of the current container was ignored (doy, #20)
- fix setting the current container multiple times from outside of a
container (doy)
- make some error messages more helpful (Jason Galea, #14)
- doc improvements (Sterling Hanenkamp, zdk, Philippe Bruhat, and Gabor
Szabo; #15, #17, #19, #21)
- remove the (unmaintained) Bread::Board::GraphViz
0.25 2011-10-20
- Bread::Board - the container sugar was misbehaving (since April 2010
apparently), so we have fixed it and clarified it
0.24 2011-10-15
- Bread::Board::Container - make sure to clone subcontainers, this is
necessary for parameterized containers to retain their connections
- Bread::Board::Traversable - add some errors, be a little more defensive
0.23 2011-10-14
- Bread::Board::Container::Parameterized - retain control of names of the
generated containers, so if your the container being generated has a
name, it keeps it. - this makes these containers more addressable when
composed into higher level containers - this helps when subclassing
parameterized containers - switch the generated containers to be
created with builder instead of default - also helps when subclassing
parameterized containers as well
- t/046_custom_parameter_service.t - fixing the error about Moose
deprecations
0.22 2011-10-03
- When inferring a service for a type, allow subclasses to fulfill
discovered types.
- Converted to Dist::Zilla
0.21 2011-09-06
- Bread::Board - Allow service() and alias() sugar functions to return
the newly-created objects if the context container is not defined.
(thanks to kip hampton) - added tests for this - this module is just an
exporter, so it does not need to 'use Moose' (thanks to Tomas Doran)
- fixed some spelling and grammar errors (thanks to ben hengst and Brad
Bowman)
- Bread::Board::Service::WithParameters - parameters attribute now has a
builder instead of a default, so as to allow better tweaking in
subclasses (thanks to Andre Walker) - added tests for this
0.20 2011-06-13
- Bread::Board::Lifecycle::Singleton - fix bug in singletons with
circular refs (thanks to doy) - added tests for this (thanks to
perigrin)
0.19 2011-06-01
- Bread::Board::GraphViz - added by jrockway, this allows you to
visualise a Bread::Board system using GraphViz - note that this is
optional and requires you to install optional dependencies
- Bread::Board::Service::Alias - add the ability to alias services under
another name (thanks to doy) - added tests for this
- Bread::Board::Service::Inferred - improving edge cases (thanks to doy)
- Bread::Board::Service::* - several code improvements (thanks to doy)
- Bread::Board::Service - allow for custom Lifecycles by using the "+"
prefix (thanks to jasonmay) - added tests for this
0.18 2011-04-13
- Bread::Board::Service::WithParameters - added has_parameter_defaults
method to check if a parameter has default values
- Bread::Board::Service::WithDependencies - added a check for
has_parameter_defaults before we make a Thunk - added test for this
(thanks to rafl)
0.17 2011-02-22
- Bread::Board::Service::Inferred - make recrusive inferrence work - add
tests for this
- Bread::Board::Manual::Concepts::Advanced - small doc update about
subclassing and the name parameter, resolving RT#63124 (thanks to Evan
Haas)
- POSSIBLE BACK COMPAT BREAKAGE !!
- Bread::Board::Traversal - make relative parent path traversal more
sane, there should be no more need for excessive ../../ stuff in
dependency service paths (thanks doy) - adjust tests accordingly - this
should fix RT#64478 as well
0.16 2011-01-10
- Bread::Board::service sugar - adding the 'service_class' param for the
service sugar function which allows you to pass in a custom service
subclass - added tests for this (062_service_class_w_sugar.t)
- Bread::Board::Dependency - added the service_params attribute here so
that it is possible to pass in parameters when you depend on a service
which requires them - added tests for this
(045_parameters_in_dependency.t)
- Bread::Board::Service::Inferred - when a typemapped service is created
it is now named with the special 'type:' prefix. This allows you to
depend on a typemapped service in a non-typemapped service - added
tests for this (079_depending_on_type.t)
- Bread::Board::Traversable - improving the error messages when a
container/service is not found
0.15 2010-09-30
- Bread::Board::Service - removed the MooseX::Param dependency and
implemented it internally so that we have more control
- Bread::Board::Types - the Bread::Board::Service::Dependencies type now
can also coerce ArrayRef[Str] and HashRef[Str] types correctly (doy)
- Bread::Board::Service::WithDependencies - we now only create a
::Deferred::Thunk object if we have non-optional params
- Bread::Board::Service::WithParameters - added the
has_required_parameters method, to see if there are any non-optional
parameters - added tests for both the above
- NEW EXPERIMENTAL FEATURE !!
- Bread::Board - added the typemap and infer keyword to help in the
mapping of types and construction of inferred services - added tests
for this
- Bread::Board::Container - added the typemap feature and added the
->resolve( type => $type ) call - added tests for this
- Bread::Board::Service::Inferred - added this and tests for it
- Bread::Board::Manual::Concepts::Typemap - added this to help explain
the typemap feature
0.14 2010-08-24
- Bread::Board::Container - added the ->resolve method to replace the
->fetch( $service )->get pattern that annoys mst so much. - adjusted
all the tests to account for this change. - adjusted all the docs to
now use this approach instead
- now using Try::Tiny for all exception handling (except the Deferred
service)
- Bread::Board::Service::WithDependencies - if you want to depend on a
parameterized service, now you can and it will return a
Bread::Board::Service::Deferred::Thunk that you can call ->inflate on
and pass in the parameters for it. - added tests for this
- Bread::Board::Service::Deferred::Thunk - added this + tests for it
0.13 2010-04-23
- Bread::Board - making the include keyword handle compilation errors
better (doy) - added test for this
- Bread::Board::Container Bread::Board::Container::Parameterized - it is
now possible to store parameterized containers within regular
containers and have them behave properly - added tests for this
- Bread::Board::Manual::Example::* - adding some examples of ways to use
Bread::Board to the manual - added tests to confirm they work
0.12 2010-04-18
- Bread::Board - added the `include` keyword which will evaluate an
external file within your Bread::Board configuration - added tests for
this - added support for parameterized containers - added tests for
this - the 'container' keyword will now accept an instance of
Bread::Board::Container instead of the name, this makes subclassing
easier - added tests for this
- Bread::Board::Container::Parameterized - added this module and tests
- Bread::Baord::Manual - moved, re-organizad and added too the docs that
were previously in Bread::Board.pm
0.11 2010-03-25
- Much improved documentation.
- Fixed inc/ to include all used Module-Install extensions.
0.10 2010-02-22
- Bread::Board - import strict and warnings into the caller upon import
(Florian Ragwitz) - fixing the SYNOPSIS so that it will actually run
(thanks to zby for spotting this)
- Bread::Board::ConstructorInjection - Add a constructor_name parameter
for classes using MooseX::Traits or other things which need an
alternately named constructor. (Tomas Doran)
0.09 2009-07-29
- Add cloning support for containers and services
- (thanks to jrockway for this) - adding tests for this
- Bread::Board::ConstructorInjection - use meta->constructor_name instead
of "new" if possible (jrockway)
- Bread::Board::Service::WithParameters - fixing a leak where we would
hold onto parameters that were passed into get()
0.08 2009-07-18
- updating dates on all files
- Bread::Board::LifeCycle::Singleton::WithParameters - new module added
to support the idea of a singleton lifecycle keyed on the parameters
rather then just a per-instance item.
- Bread::Board::Traversable - fixed the is_weak_ref mis-spelling
0.07 2009-02-18
- Work with new MooseX::Params::Validate
- Specify MX::P::Validate version number in Makefile.PL
0.06 2008-11-03
- Forgot to update MANIFEST before uploading to CPAN.
0.05 2008-11-03
- Applied immutablity to classes where applicable, and vigorously
unimport Moose keywords when they are no longer needed. This results in
x 2 performance as far as defining a Bread::Board model (Daisuke Maki).
- Bread::Board - Implemented unimport(), thus allowing you to remove
keywords exported by Bread::Board (Daisuke Maki).
- Bread::Board::Traversable - Unrolled recursive calls to loops, and
removed Sub::Current dependency (Daisuke Maki)
0.04 2008-10-31
- Bread::Board Bread::Board::Traversable - fix root path handling (thanks
to Daisuke Maki) - added tests for this
- Bread::Board::Dumper - Simple utility for dumping containers (thanks to
Daisuke Maki)
- t/ - fixing the plans so that new versions of Test::More stop
complaining
0.03 2008-01-08
- Bread::Board::Service::WithParameters - fixed the parameter validation
to use a custom cache key, this is so that it plays nicely with the new
MooseX::Params::Validate - added tests for this
0.02 2008-01-08
- forgot a dependency, whoops.
0.01 2008-01-07
- Out with the old (IOC) and in with the new (Bread::Board)