- applied patch by Branislav Zahradnik
<brano@blueorange.sk> which adds -InterPolateEnv.
This allows to use environment variables too. It
implies -InterPolateVars.
- added object list capability for the ::Extended::obj()
method. If a certain key points to an array of
hashrefs, then the whole arrayref is returned.
Suggested by Alan Hodgkinson <alan@softxs.ch>.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@56 be1acefe-a474-0410-9a34-9b3221f2030f
- fixed bug in save(), now blocks containing whitespaces
will be saved using quotes, in addition the parser observes
the quoting feature, added portion about this to the pod
doc. pointed out by Jeff Murphy <jcmurphy@jeffmurphy.org>.
- added internal list of files opened so far to avoid
reading in the same file multiple times.
Suggested by Michael Graham.
- added new method files() which returns the above list.
- added workaround for foolish perl installation on
debian systems (croak() doesn't work anymore as of
5.8.4, it's a shame!)
- applied patch by Michael Graham which fixes IncludeRelative
feature, now an included file is being included relative
to the calling config file, not the first one.
- added 'make test' targets for files() and include
stuff. (by Michael too)
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@54 be1acefe-a474-0410-9a34-9b3221f2030f
- fixed bug with not working -IncludeRelative setting when
including a config file. It were only included from the
location relative to the underlying config if it were
non-existent. reported by Dmitry Koteroff <dmitry@koteroff.ru>.
- applied patch by Danial Pearce <danial@infoxchange.net.au>
which adds the -BackslashEscape parameter to enable
general escaping of special characters using the
backslash.
- fixed bug reported by Harold van Oostrom <cpan@lanceerplaats.nl>:
according to the documentation one can call new() with
a hash-ref as its single parameter which would then
used as the config. This didn't work and were fixed.
- added feature suggested by Eric Andreychek <eric@openthought.net>:
now block statements like this are allowed: "<directory blah/>"
which is called an explicit empty block. This generates just
an empty hash-ref and saves writing. In fact, internally it
will be converted to:
<directory blah>
</directory>
- fixed Makefile.PL: it cleans now files generated by 'make test'
properly. reported by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
- updated MANIFEST (in fact I did this some years ago the last time!)
also reported by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@51 be1acefe-a474-0410-9a34-9b3221f2030f
- fixed bug reported by Stefano di Sandro <stedis@ulis.it>: in
OOP mode (extended access) the obj() method returned the whole
config object if the given key does not exist. Now it returns
a new empty object.
- added patch by David Dick <david_dick@iprimus.com.au> which
sets $/ if it is unset.
- added patch by David Dick <david_dick@iprimus.com.au> which
calls the binmode() function in case the modules is being
used under win32 systems. Read perldoc -f binmode for more
informations on this issue.
- added feature suggested by Chase Phillips <cmp@uiuc.edu>:
the new() method has a new parameter -Tie which takes the
name of a Tie class that each new hash should be based off
of. This makes it possible to create a config hash with
ordered contents across nested structures.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@46 be1acefe-a474-0410-9a34-9b3221f2030f
was within a block, then /^ #/ was not ignored as
comment but instead added as variable. Reported by
Lupe Christoph <lupe@lupe-christoph.de>
- added -StrictObjects parameter support in the following
::Extended methods: hash() and value().
- added better parameter checks in the ::Extended::obj()
method. Its now no more possible to create a new (sub-)
object from an undefined key or a key which does not
point to a hash reference.
- simplified storing of ConfigFile and ConfigHash in new()
removed my variable $configfile.
- the original parameter list will now be saved, which is
required for ::Extended to create new objects with the
same config as their parents.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@35 be1acefe-a474-0410-9a34-9b3221f2030f
function call which caused the module to croak.
- added feature request, if in extended mode (OOP turned
on with -ExtendedAccess => 1 access to non-existent keys
caused a croak. While this is still the default behavior
it is now possible to turn this off using -StrictObjects => 0.
- added this to the related pod section in ::Extended.
- fixed bug in new() which caused a couple of errors
if the ConfigFile parameter is not set, or is set to
undef. In this case it will now simply create an empty
object.
- fixed related bug in save_file() which will save "" to
a file now if the config is uninitialized (i.e. the case
mentioned below arrived).
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@33 be1acefe-a474-0410-9a34-9b3221f2030f
reason I cant remember all of its methods. This included
keys() exists() and delete(), which are perl internals.
If one used keys() on a normal hash, then the ::Extended
own keys() were used instead of perls own one. I removed
the export line.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@31 be1acefe-a474-0410-9a34-9b3221f2030f
whitespaces in option names.
- changed the save() calls in the test script (t/run.t)
to save_file()
- removed new() from ::Interpolated and ::Extended.
This may break existing code (they will need to
move to the flags of Config::General::new() ), but
this decision must be made. The problem was that
both the old way of directly using the subclasses
and the enw way did not work together. So, now
subclasses are only method holders and used by
Config::General on request. Direct use of subclasses
is prohibited. (you receive a warning if you do).
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@28 be1acefe-a474-0410-9a34-9b3221f2030f
caused a beloved "use of uninitialized ..." message.
Reported by Danial Pearce <danial@infoxchange.net.au>.
- Removed all deprecated methods (in fact, they are still
there for shouting out a warn that its deprecated. But
the pod sections are removed. These are NoMultiOptions()
and save().
- added two new parameters to new(): -InterPolateVars and
-ExtendedAccess, which allows one to use the functionalites
of the supplied submodules without the need to decide
for one of them. This makes it possible to use variable
interpolation and oop access in the same time. Suggested
by Jared Rhine <jared@wordzoo.com>.
- added new parameter -BaseHash which makes it possible
to supply your own hash which stores the parsed contents
of the config. This can be a tied hash o the like.
Suggested by Jared Rhine <jared@wordzoo.com> too.
- switched to release 2.00 because the above is a major
change.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@26 be1acefe-a474-0410-9a34-9b3221f2030f
bit better to understand.
- added new parameter -DefaultConfig, which can hold a hashref
or a string, which will be used to pre-define values
of the resulting hash after parsing a config.
Thanks to Mark Hampton <mark.hampton@qualis.com> for the
suggestion.
- added new parameter -MergeDuplicateOptions, which allows
one to overwrite duplicate options, which is required,
if you turn on -DefaultConfig, because otherwise a
array would be created, which is probably not what you
wanted.
- added patch by Danial Pearce <danial@infoxchange.net.au>
to Config::General::Extended::keys(), which allows to
retrieve the keys of the object itself (which was not
directly possible before)
- added patch by Danial Pearce <danial@infoxchange.net.au>
to Config::General::Extended::value(), which allows to
set a value to a (perlish-) nontrue value. This was a
bug.
- added patch by Danial Pearce <danial@infoxchange.net.au>
to Config::General::_parse_value, which fixes a bug in
this method, which in prior versions caused values of
"0" (zero digit) to be wiped out of the config.
- added tests in t/run.t for the new default config feature.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@25 be1acefe-a474-0410-9a34-9b3221f2030f
in _store(), which caused the module to create scalar
entries even if the entry contained newlines. While
Danial supplied a patch to fix this - thx(TM) - I
did not apply it, because I "outsourced" this kind of
stuff to the subroutine _write_scalar(), see next.
- added internal methods _write_scalar() and _write_hash()
to simplify _store(), which did the same thing more
than once, which is a good time to create a sub which
does the job.
- fixed cut'n paste bug in General/Extended.pm reported by
Danial Pearce <danial@infoxchange.net.au>, which caused
Config::General::Extended::is_scalar() to return true even
when the key you pass in is an array.
- added new method Config::General::Extended::delete() suggested
by Danial Pearce <danial@infoxchange.net.au>, which deletes
the given key from the config.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@23 be1acefe-a474-0410-9a34-9b3221f2030f
could happen, in 1.29 it was "lost". However -
I added it again now.
- added patch by Peder Stray <peder@linpro.no> to
the _store() method, which makes it possible to catch
arrays of hashes to be stored correctly.
- cleaned up the t/run.t testscript to reflect the
changes (in fact I did not touch it since 1.18 or so).
- added test number 16 to test variable interpolation
using ::Interpolated in t/run.t.
- fixed bug with new() parameter -AllowMultiOptions which
generated a croak() if set to something other than "no".
- changed Extended::save() to reflect the API change,
it calls now save_file().
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@21 be1acefe-a474-0410-9a34-9b3221f2030f
option itself, if more than one of this particular
option occured.
- added -UseApacheInclude feature, contributed by
Thomas Klausner <domm@zsi.at>
- fixed bug with multiple options stuff, which did not
work with blocks or named blocks. Pointed out by
Thomas Klausner <domm@zsi.at>, who meant it being
feature request, but in fact it was a bug (IMHO).
- Config::General does now contain also it's OO-sister
Config::General::Extended, which is from now on
no more available as an extra module, because it
lived a shadowy existence.
- finally(!) created a Changelog file (this one, yes).
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@12 be1acefe-a474-0410-9a34-9b3221f2030f