[wellwell-devel] [SCM] Interchange wellwell catalog branch, master, updated. 9d0fe279d9f8bf6f5038d6543a9a666988505c97
Stefan Hornburg
racke at rt.icdevgroup.org
Wed Dec 23 10:10:21 UTC 2009
via 9d0fe279d9f8bf6f5038d6543a9a666988505c97 (commit)
via 7d3555b6d137c7eb937edde1115563a24ff89c59 (commit)
from 0f76fb7c69ee8b4da0ac9d7e727592eb7125a454 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9d0fe279d9f8bf6f5038d6543a9a666988505c97
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Wed Dec 23 11:09:23 2009 +0100
added support for MySQL and PostgreSQL stores
corrected error message for unknown configuration parameters
commit 7d3555b6d137c7eb937edde1115563a24ff89c59
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Thu Dec 17 21:34:30 2009 +0100
module name can also be used as formatter configuration value
-----------------------------------------------------------------------
Summary of changes and diff:
lib/Vend/Wiki.pm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 52 insertions(+), 5 deletions(-)
diff --git a/lib/Vend/Wiki.pm b/lib/Vend/Wiki.pm
index 316c56b..5b45ea0 100644
--- a/lib/Vend/Wiki.pm
+++ b/lib/Vend/Wiki.pm
@@ -56,7 +56,10 @@ sub new {
require Wiki::Toolkit::Store::SQLite;
$self->{store} = new Wiki::Toolkit::Store::SQLite(dbname => $self->{dbname});
}
-
+ else {
+ $self->load_store();
+ }
+
# create Wiki::Toolkit formatter(s)
if ($self->{formatter}) {
my @formatters;
@@ -250,6 +253,34 @@ sub list_pages {
return @pages;
}
+# load store
+sub load_store {
+ my ($self, $store) = @_;
+ my ($class);
+
+ if ($self->{backend} =~ /mysql/i) {
+ $class = 'Wiki::Toolkit::Store::MySQL';
+ }
+ elsif ($self->{backend} =~ /(pg|postgresql)/i) {
+ $class = 'Wiki::Toolkit::Store::PostgreSQL';
+ }
+ else {
+ die "Unknown Wiki store $self->{backend}.\n";
+ }
+
+ eval "require $class";
+ if ($@) {
+ die "Failed to load $class: $@\n";
+ }
+ eval {
+ $self->{store} = $class->new(dbname => $self->{dbname}, dbuser => $self->{dbuser},
+ dbpass => $self->{dbpass}, dbhost => $self->{dbhost});
+ };
+ if ($@) {
+ die "Failed to instantiate $class: $@\n";
+ }
+}
+
# load formatter
sub load_formatter {
my ($self, $fmt) = @_;
@@ -298,6 +329,11 @@ sub action {
package Vend::Config;
+my %wiki_config_params = (dbname => 1,
+ dbuser => 1,
+ dbpass => 1,
+ dbhost => 1);
+
sub parse_wiki {
my ($item, $settings) = @_;
@@ -313,14 +349,25 @@ sub parse_wiki {
}
elsif ($param eq 'formatter') {
# add to our list of formatters
- ::logGlobal ("Adding formatter $value.");
- $C->{$item}->{$name}->{formatter}->{$value} = {class => "Wiki::Toolkit::Formatter::$value"};
+ my $class;
+
+ if ($value =~ /::/) {
+ # formatter with different namespace, breakout name
+ $class = $value;
+ my @frags = split(/::/, $value);
+ $value = pop(@frags);
+ }
+ else {
+ $class = "Wiki::Toolkit::Formatter::$value";
+ }
+
+ $C->{$item}->{$name}->{formatter}->{$value} = {class => $class};
}
- elsif ($param eq 'backend' || $param eq 'dbname') {
+ elsif ($param eq 'backend' || $wiki_config_params{$param}) {
$C->{$item}->{$name}->{$param} = $value;
}
else {
- config_error("No code written yet for $param and $value.", $param, $value);
+ config_error("Unknown wiki parameter %s with value %s.", $param, $value);
}
return $C->{$item};
hooks/post-receive
--
Interchange wellwell catalog
More information about the wellwell-devel
mailing list