Badger
view release on metacpan or search on metacpan
Added the if_env import hook and "-a|Badger::Test/all()" option to
Badger::Test to make it easier to define tests that don't get run unless
a particular environment variable is set (e.g. for Pod coverage/kwalitee
tests that you only want to run if either of the "RELEASE_TESTING" or
"AUTOMATED_TESTING" environment variables is set).
Added the random_name(), camel_case() and permute_fragments() functions
to Badger::Utils. Also add some extra debugging code to params() and
self_params() to catch any attempt to pass an odd number of arguments.
Changed the Badger::Factory module to use permute_fragments() on the
module path when specified as a single string. Also added the default()
and names() methods along with their corresponding package variable
magic.
Added the debug_callers(), debugf() and debug_at() methods to
Badger::Debug.
Added the alias() method to Badger::Class.
Added the auto_can() method to Badger::Class::Methods.
Changed the Badger::Class::Config module to store the configuration
scheme in $CONFIG_SCHEMA instead of $CONFIG.
Added the Badger::Codec::HTML module which defines the "html" codec.
Changed the throw() method in Badger::Base to pass the exception type to
exception().
Changed the try() method in Badger::Base to preserve the list/scalar
calling context and to handle false but defined values.
Cleaned up and generalised the Badger::Hub module. The Badger-specific
data has now been moved into Badger::Hub::Badger. The "configure()"
method is now called construct().
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 the codec() method to Badger::Filesystem::File for specifying a
serialisation codec to use in conjunction with the new data() method.
Added Badger::Timestamp. This is returned by the new created(),
accessed() and modified() methods in Badger::Filesystem::Path.
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
( run in 1.396 second using v1.01-cache-2.11-cpan-364913b4093 )