Author: dylan
Date: 2005-05-07 21:41:27 -0400 (Sat, 07 May 2005)
New Revision: 673
Removed:
trunk/main/core/t/003_logger.t
Modified:
trunk/
trunk/main/core/lib/Haver/Base.pm
trunk/main/core/lib/Haver/Config.pm
trunk/main/core/t/001_config.t
Log:
[EMAIL PROTECTED]: dylan | 2005-05-07 21:35:48 -0400
Haver::Base fixups. Haver::Config uses Haver::Base now.
Removed useless test.
Fixed 001_config.t to run.
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:938
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
+ 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:939
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
Modified: trunk/main/core/lib/Haver/Base.pm
===================================================================
--- trunk/main/core/lib/Haver/Base.pm 2005-05-08 01:41:23 UTC (rev 672)
+++ trunk/main/core/lib/Haver/Base.pm 2005-05-08 01:41:27 UTC (rev 673)
@@ -14,7 +14,7 @@
no warnings;
local *boolean_arguments = sub { (qw( -weak -force )) };
local *paired_arguments = sub { (qw( -package -init )) };
- Haver::Server::Base->parse_arguments(@_);
+ Haver::Base->parse_arguments(@_);
};
my ($field, $default) = @values;
if (my $sub = $package->can($field) and not $args->{'-force'}) {
Modified: trunk/main/core/lib/Haver/Config.pm
===================================================================
--- trunk/main/core/lib/Haver/Config.pm 2005-05-08 01:41:23 UTC (rev 672)
+++ trunk/main/core/lib/Haver/Config.pm 2005-05-08 01:41:27 UTC (rev 673)
@@ -1,62 +1,40 @@
# vim: set ts=4 sw=4 expandtab si ai sta tw=100:
# This module is copyrighted, see end of file for details.
package Haver::Config;
-use strict;
-use warnings;
-
-use Haver::Object;
-use base 'Haver::Object';
+use Haver::Base '-Base';
use Scalar::Util 'reftype';
-use Carp;
+
use YAML ();
+our $VERSION = 0.10;
-our $VERSION = 0.08;
+field 'file';
+field 'config' => {};
+field 'default' => {};
-sub initialize {
- my ($me, $p) = @_;
- foreach my $field (qw( default file )) {
- if (exists $p->{$field}) {
- carp "the parameter $field is DEPRECATED. Use -$field instead!";
- $p->{"-$field"} = delete $p->{$field};
- }
- }
-
- $me->{default} = delete $p->{'-default'} || {};
-
- if ($p->{'-file'}) {
- $me->load(delete $p->{'-file'});
- }
+sub initialize {
+ my $file = $self->{file};
+ my $config = -e $file ? YAML::LoadFile($file) : {};
+ $self->{config} = merge_hash($config, $self->{default} || {});
}
-sub load {
- my ($me, $file) = @_;
- my $config;
- if (-e $file) {
- $config = YAML::LoadFile($file);
- } else {
- $config = {};
- }
+sub load() {
+ my ($this, $file, $def) = @_;
+ my $self = $this->new(
+ file => $file,
+ default => $def,
+ );
- $me->{config} = merge_hash($config, $me->{default});
+ return $self;
}
sub save {
- my ($me, $file) = @_;
- $file ||= $me->{file};
-
- YAML::DumpFile($file, $me->{config});
+ YAML::DumpFile($self->{file}, $self->{config});
}
-sub config {
- my ($me) = @_;
-
- $me->{config};
-}
-
# Author: bdonlan
-sub merge_struct {
+sub merge_struct ($$) {
# ASSERT: @_ == 2;
my ($left, $right) = @_;
my $func = "merge_struct(\$left,\$right):";
@@ -78,7 +56,7 @@
}
# Author: bdonlan
-sub merge_hash {
+sub merge_hash ($$) {
croak 'merge_hash($a,$b): $a and $b must be hashes!'
unless reftype($_[0]) eq 'HASH' and reftype($_[1]) eq 'HASH';
my ($left, $right) = @_;
@@ -94,7 +72,7 @@
}
# Author: bdonlan
-sub merge_array {
+sub merge_array ($$) {
croak 'merge_array($a, $b): $a and $b must be arrays!'
unless reftype($_[0]) eq 'ARRAY' and reftype($_[1]) eq 'ARRAY';
my ($left, $right) = @_;
@@ -102,11 +80,6 @@
}
-
-1;
-
-
-1;
__END__
=head1 NAME
@@ -117,8 +90,8 @@
use Haver::Config;
my $ch = new Haver::Config(
- -file => "$ENV{HOME}/.myconfigfile",
- -default => {
+ file => "$ENV{HOME}/.myconfigfile",
+ default => {
name => $ENV{USER},
stuff => [1,2,3],
},
Modified: trunk/main/core/t/001_config.t
===================================================================
--- trunk/main/core/t/001_config.t 2005-05-08 01:41:23 UTC (rev 672)
+++ trunk/main/core/t/001_config.t 2005-05-08 01:41:27 UTC (rev 673)
@@ -14,8 +14,8 @@
my $d =
my $ch = new Haver::Config (
- -file => 'foobar',
- -default => {
+ file => 'foobar',
+ default => {
stuff => {
monkeys => 2,
},
Deleted: trunk/main/core/t/003_logger.t
===================================================================
--- trunk/main/core/t/003_logger.t 2005-05-08 01:41:23 UTC (rev 672)
+++ trunk/main/core/t/003_logger.t 2005-05-08 01:41:27 UTC (rev 673)
@@ -1,19 +0,0 @@
-#!/usr/bin/perl
-# vim: set ft=perl:
-
-use strict;
-use Test::More tests => 2;
-BEGIN {
- use_ok('Haver::Logger');
-};
-
-#########################
-
-eval { new Haver::Logger };
-if ($@) {
- pass("new is a fatal error.");
-} else {
- fail("new is not a fatal error!");
-}
-
-