NAME

Badger::Changes - Summary of changes in the Badger toolkit

CHANGES

Version 0.06

Added copy_file() and move_file() to Badger::Filesystem and copy() and move() methods to Badger::Filesystem::File.

Added chmod_path() to Badger::Filesystem and chmod() to Badger::Filesystem::Path.

Added Bin() to Badger::Filesystem.

Added the encoding() method to Badger::Filesystem::File for specifying the encoding of a file, along with the utf8(), bytes(), crlf() and raw() methods for enabling different encoding layers.

Added Badger::Timestamp.

Added Badger::Logic.

Added Badger::Log and Badger::Log::File.

Added numlike() to Badger::Utils as an alias for looks_like_number. It's the numerical counterpart to textlike() and is significantly easier to type.

Added debug_msg() to Badger::Base. Also added the Badger::Base::Trial class definition for use with the try() method.

Added lib import hook to Badger.

Added bclass as an alias for class in Badger::Class.

Changed Badger::Class::Config to maintain the order of configuration parameters where possible (i.e. when expressed as a list ref rather than a hash ref). Also added target:var fallback which looks in the target object or hash ref for the variable. This allows options to default to the values set by preceeding options.

Changed Badger::Codec::JSON to use JSON::XS if available.

Mr T is now using Badger 0.06 in production code and is happy to report that everything seems to be working rather well. Anyone for a game of tennis?

Version 0.05 - 23rd December 2008

Refactored Badger::Factory.

Added support to Badger::Exporter for the = pseudo-sigil which can be used to create constants on the fly.

package Badger::Example;
use Badger::Class
    exports => {
        tags => {
            math => {
                e   => '=2.718',
                pi  => '=3.142',
                phi => '=1.618',
            },
        }
    };

package main;
use Badger::Example ':math';

print e;            # 2.718
print pi;           # 3.142
print phi;          # 1.618

Mr T is starting to feel rather confident about building a production system based on Badger v0.05.

Version 0.04 - 2nd December 2008

Added the throw_msg() method to Badger::Base.

Added init_method hook to Badger::Class and initialiaser() to Badger::Class::Methods.

Changed Badger::Exception match_type() method to accept a list or hash reference, or a string of whitespace delimited exception types.

Changed Badger::Factory to pass $name as an argument to various methods. Also passes arguments to load() (required for Template::TT2::Plugins) Also modified item() to accept a non-textlike type argument which bypasses the module lookup.

Moved a whole bunch of stuff out of Badger::Class into Badger::Class::* modules.

Added Badger::Class::Config for simple configuration.

Added hash() method to Badger::Methods and hash_methods hook to Badger::Class.

Added trace() hook and related paraphernalia to Badger::Exception. Added the -t / --trace command line options to Badger::Test to enable it when running tests. Also added -h / --help options.

Added Codec() exportable subroutine to Badger::Codecs.

Added Badger::Codec::URL. It's similar to Badger::Codec::URI, but slightly different. See the TT uri/url filters for the reason.

Changed the prototype() method in Badger::Prototype to accept a single undef value to clear any current prototype. Also added the has_prototype() method.

Mr T is looking on the bright side about the possibility of building a production system based on Badger v0.04, but still advises caution.

Version 0.03 - 7th October 2008

Added delegate loaders to Badger. This provides some semantic sugar for loading a bunch of different Badger::* modules in one go.

use Badger
    Filesystem  => 'FS $Bin',
    Codecs      => 'storable base64',
    Debug       => {
        modules => 'My::Module',
    };

Added different() to Badger::Test::Manager.

Added textlike() to Badger::Utils

Added the overload as_text and is_true import hooks and related method to Badger::Class. These delegate to the overload module.

Added the print method to Badger::Filesystem::File.

Added support for dynamic root directories to Badger::Filesystem::Virtual.

Added the defaults and aliases hooks to Badger::Class, implemented by Badger::Class::Defaults and Badger::Class::Aliases, respectively. There are still experimental.

Fixed up some stat handling in Badger::Filesystem to help with subclassing in Badger::Filesystem::Virtual

Mr T pities the fool that attempts to builds a production system based on Badger version 0.03 without first evaluating it carefully and reading the documentation.

Version 0.02 - 6th September 2008

Badger::Class got the vars method and hook for declaring and defining variables.

Badger::Utils gained the ability to load and export functions from Scalar::Util, List::Util, List::MoreUtils, Hash::Util and Digest::MD5.

Various documentation updates.

Mr T admires the tenacity of anyone attempting to build a production system based on Badger v0.02 and hopes they have a thorough test suite.

Version 0.01 - 27th August 2008

This was the first release version.

Mr T pities the fool who builds a production system based on Badger v0.01.

AUTHOR

Andy Wardley <abw@wardley.org>

COPYRIGHT

Copyright (C) 2008 Andy Wardley. All Rights Reserved.

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