0.143171 2014-11-13 14:03:30-06:00 America/Chicago * Interface Change: Bolts::Util::artifact() now returns an array of the form { $name => $artifact } rather than just $artifact. * It is now possible to pass an artifact object (i.e., an object implementing Bolts::Role::Artifact) as the definition of an artifact. * Drop get() from the Bolts::Role::Locator interface. It provides nothing useful in the way of functionality. 0.143170 2014-11-13 10:22:18-06:00 America/Chicago * Bugfix: The self() helper was missing from the Bolts package. * Adding Bolts:Util::artifact() as a generalized abstraction of the Bolts sugar (so it can be shared with Bolts::Role) * Fleshing out the artifacts accessor of Bolts::Meta::Class::Trait::Bag, which had been mentioned in the documentation previously, but had not yet been implemented. * Add Bolts::Role::Opaque to hide the internals of an artifact from locators during aquisition. * Better checking on keys and indexes when locating within an array or hash. * During acquisition, if one of the acquired items is a locator, pass control of acquisition to the nested locator. 0.142930 2014-10-20 11:17:32CDT-0500 America/Chicago * Interface Change: The dep() sugar method in Bolts now uses paths that are based on the top-level bag and not the local bag/contains definition. * Add a new blueprint, parent_bag, defined in Bolts::Blueprint::ParentBag, which just retrieves the bag of the parent during artifact resolution. * Add a sugar method to Bolts named self(), which provides a quick way of creating a parent_bag dependency. 0.142860 2014-10-13 10:20:59CDT-0500 America/Chicago * Bugfix: The push key to Bolts::artifact() was incorrectly using a 1-based index for injector keys rather than a 0-based index. * Replaced Bolts::Role::Locator with a version that only declares the required parameters. * Copied the original Bolts::Role::Locator to Bolts::Role::RootLocator and made it implement Bolts::Role::Locator * Converted Bolts::Role::SelfLocator, Bolts::Locator, and Bolts::Meta::Locator to use Bolts::Role::RootLocator. * Made Bolts::Meta::Class::Trait::Locator into an implementation of Bolts::Role::Locator. * Added a new init_locator attribute to Bolts::Artifact * Changed blueprint, scope, and injectors so that they can take a special initializer argument during construction that takes the form of a Bolts::Meta::Initializer reference that can be used to acquire the blueprint, scope, and injectors (respectively) rather than require they be delivered directly by the caller. This is much nicer to use directly now. * Added Bolts::Role::Initializer and the Bolts::Intializer attribute trait to make objects that can be initialized through the use of their own personal locator convenient. This is a slight deviation from pure IOC, but very convenient in some cases. * Modify locator_for() and meta_locator_for() in Bolts::Util to return the same locator object for each invocation after the first for a given object reference. 0.142650 2014-09-22 00:33:43CDT-0500 America/Chicago * Initial release.