You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(381) |
Nov
(176) |
Dec
(310) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(334) |
Feb
(96) |
Mar
(149) |
Apr
(214) |
May
(120) |
Jun
(56) |
Jul
(10) |
Aug
(273) |
Sep
(182) |
Oct
(56) |
Nov
(125) |
Dec
(22) |
2003 |
Jan
(63) |
Feb
(181) |
Mar
(498) |
Apr
(433) |
May
(39) |
Jun
(512) |
Jul
(276) |
Aug
(156) |
Sep
(101) |
Oct
(66) |
Nov
(24) |
Dec
(161) |
2004 |
Jan
(1) |
Feb
(377) |
Mar
(68) |
Apr
(26) |
May
(107) |
Jun
(333) |
Jul
(13) |
Aug
|
Sep
(76) |
Oct
(88) |
Nov
(170) |
Dec
(91) |
2005 |
Jan
(52) |
Feb
(239) |
Mar
(402) |
Apr
(15) |
May
(2) |
Jun
(1) |
Jul
(13) |
Aug
|
Sep
(71) |
Oct
(34) |
Nov
|
Dec
|
2006 |
Jan
(5) |
Feb
(5) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(7) |
Oct
(2) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Chris W. <la...@us...> - 2004-11-28 00:40:27
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_box/conf In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3793/conf Modified Files: action.ini Log Message: add caching parameters Index: action.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_box/conf/action.ini,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** action.ini 4 Jun 2003 15:47:01 -0000 1.3 --- action.ini 28 Nov 2004 00:09:38 -0000 1.4 *************** *** 41,44 **** --- 41,45 ---- url_none = yes action_type = template_only + cache_expire = 12h [powered_by_box] *************** *** 49,50 **** --- 50,52 ---- url_none = yes action_type = template_only + cache_expire = 12h \ No newline at end of file |
From: Chris W. <la...@us...> - 2004-11-28 00:40:26
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_box In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3793 Modified Files: package.conf Changes Log Message: add caching parameters Index: package.conf =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_box/package.conf,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** package.conf 27 Nov 2004 19:00:28 -0000 1.16 --- package.conf 28 Nov 2004 00:09:39 -0000 1.17 *************** *** 1,4 **** name base_box ! version 2.16 author Chris Winters <ch...@cw...> url http://www.openinteract.org/ --- 1,4 ---- name base_box ! version 2.17 author Chris Winters <ch...@cw...> url http://www.openinteract.org/ Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_box/Changes,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Changes 27 Nov 2004 19:00:28 -0000 1.17 --- Changes 28 Nov 2004 00:09:39 -0000 1.18 *************** *** 1,4 **** --- 1,8 ---- Revision history for OpenInteract package base_box. + 2.17 Sat Nov 27 19:09:06 EST 2004 + + Add caching parameters for static boxes. + 2.16 Sat Nov 27 13:51:04 EST 2004 |
From: Chris W. <la...@us...> - 2004-11-28 00:40:06
|
Update of /cvsroot/openinteract/OpenInteract2/doc/examples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10228 Removed Files: caching_admin_check caching_clear_cache_usage caching_expire_config caching_key_double caching_key_simple caching_parameter_double caching_parameter_single caching_perl_call_needing_init caching_perl_params_init caching_request_double_permute caching_request_simple caching_template_logging Log Message: delete caching examples; they're now inlined --- caching_admin_check DELETED --- --- caching_clear_cache_usage DELETED --- --- caching_expire_config DELETED --- --- caching_key_double DELETED --- --- caching_key_simple DELETED --- --- caching_parameter_double DELETED --- --- caching_parameter_single DELETED --- --- caching_perl_call_needing_init DELETED --- --- caching_perl_params_init DELETED --- --- caching_request_double_permute DELETED --- --- caching_request_simple DELETED --- --- caching_template_logging DELETED --- |
From: Chris W. <la...@us...> - 2004-11-28 00:38:53
|
Update of /cvsroot/openinteract/OpenInteract2/doc/Manual In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9902 Modified Files: Caching.pod Log Message: update docs for caching, inlining all the INCLUDE items (they'll be removed in a second...) Index: Caching.pod =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/doc/Manual/Caching.pod,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Caching.pod 17 Feb 2004 04:30:11 -0000 1.9 --- Caching.pod 28 Nov 2004 00:38:23 -0000 1.10 *************** *** 30,35 **** Content caching is still fairly young in OpenInteract, and it's not ! appropriate (or useful) for all purposes. It's best when used on pages ! that contain a lot of data or require a good deal of processing. =head2 Global Configuration --- 30,51 ---- Content caching is still fairly young in OpenInteract, and it's not ! appropriate (or useful) for all purposes. It's best when used on ! content that: ! ! =over 4 ! ! =item * ! ! doesn't have any side-effects, and ! ! =item * ! ! contain a lot of data and/or ! ! =item * ! ! require a good deal of processing. ! ! =back =head2 Global Configuration *************** *** 46,51 **** =item * ! C<cache.cleanup>: If true we delete and recreate the cache ! directory every time the server starts up. This is recommended. =item * --- 62,68 ---- =item * ! C<cache.cleanup>: If true we delete and recreate the cache directory ! every time the server starts up. This is recommended unless you're ! sure what's being cached and for how long. =item * *************** *** 61,67 **** =item * ! C<cache.default_expire>: number of seconds used for the ! cached content expiration. You can override this on a case-by-case ! basis. =item * --- 78,83 ---- =item * ! C<cache.default_expire>: number of seconds used for the cached content ! expiration. You can override this on a case-by-case basis. =item * *************** *** 83,87 **** two. The first (or zeroth) is that you must subclass L<OpenInteract2::Action|OpenInteract2::Action>. You almost certainly ! already do this, so it's not much a requirement. The real requirement: caching must be configured in your action using --- 99,103 ---- two. The first (or zeroth) is that you must subclass L<OpenInteract2::Action|OpenInteract2::Action>. You almost certainly ! already do this, so it's not much of a requirement. The real requirement: caching must be configured in your action using *************** *** 101,114 **** action. Here's an example: ! [% INCLUDE examples/caching_parameter_single | indent(4) %] Here we've told the caching system to associate content from the 'latest' task with the variable 'num_items'. So when we get a request: ! [% INCLUDE examples/caching_request_simple | indent(4) %] ! We'll create a unique cache key like the following: ! [% INCLUDE examples/caching_key_simple | indent(4) %] and use this to get and set the cached content. (The actual key may --- 117,131 ---- action. Here's an example: ! [news cache_param] ! latest = num_items Here we've told the caching system to associate content from the 'latest' task with the variable 'num_items'. So when we get a request: ! /news/latest/?num_items=10 ! We'll create a unique cache key like the following: ! news;latest;num_items=10 and use this to get and set the cached content. (The actual key may *************** *** 119,127 **** news items are retrieved: ! [% INCLUDE examples/caching_parameter_double | indent(4) %] And a corresponding key might look like: ! [% INCLUDE examples/caching_key_double | indent(4) %] Now the cached content depends on 'num_items' and 'country'. All of --- 136,146 ---- news items are retrieved: ! [news cache_param] ! latest = num_items ! latest = country And a corresponding key might look like: ! news;latest;country=USA;num_items=10 Now the cached content depends on 'num_items' and 'country'. All of *************** *** 129,133 **** remain totally separate from one another: ! [% INCLUDE examples/caching_request_double_permute | indent(4) %] =head2 Controlling Cache Expirations --- 148,156 ---- remain totally separate from one another: ! /news/latest/?num_items=10 ! /news/latest/?num_items=15 ! /news/latest/?num_items=10&country=USA ! /news/latest/?num_items=10&country=France ! /news/latest/?num_items=15&country=USA =head2 Controlling Cache Expirations *************** *** 136,145 **** C<cache_expire> section of the action: ! [% INCLUDE examples/caching_expire_config | indent(4) %] ! The values are in seconds. Here we've said the content generated by ! the 'latest' and 'home' tasks should be cached for 10 minutes, and the ! 'display' task for one hour. You can manually delete cache entries ! using the C<clear_cache()> action method. Notice that we included an extra task here, 'home'. It has no --- 159,173 ---- C<cache_expire> section of the action: ! [news cache_expire] ! latest = 600 ! display = 1h ! home = 10m ! Unadorned values, such as 'latest' are in seconds. You can also use a ! character after the number to indicate minutes (m), hours (h) or days ! (d). Here we've said the content generated by the 'latest' and 'home' ! tasks should be cached for 10 minutes, and the 'display' task for one ! hour. You can manually delete cache entries using the C<clear_cache()> ! action method. Notice that we included an extra task here, 'home'. It has no *************** *** 147,152 **** C<cache_param>. ! If you don't list your task in C<cache_expire> content generated by ! it will not be cached. =head2 Specifying Cache Parameters --- 175,190 ---- C<cache_param>. ! If you don't list your task in C<cache_expire> content generated by it ! will not be cached unless tell OI you want the same value to be ! applied to all tasks. For this you just assign a single value to ! 'cache_expire': ! ! [news] ! class = OpenInteract2::Action::News ! ... ! cache_expire = 10m ! ! This tells OI to use a cache expiration of 10 minutes for all tasks in ! the 'news' action. =head2 Specifying Cache Parameters *************** *** 165,170 **** parameters. Normally you'll depend on GET/POST parameters passed from the user. We already have access to those through the ! L<OpenInteract2::Request|OpenInteract2::Request> object, so we go ! ahead and use them if necessary. Additionally there are a couple of implicit parameters you can use to --- 203,208 ---- parameters. Normally you'll depend on GET/POST parameters passed from the user. We already have access to those through the ! L<OpenInteract2::Request> object, so we go ahead and use them if ! necessary. Additionally there are a couple of implicit parameters you can use to *************** *** 217,221 **** Ah, but what happens if someone passes in a news object directly? ! [% INCLUDE examples/caching_perl_call_needing_init | indent(4) %] Now our automatic parameter discovery won't work. This is where the --- 255,267 ---- Ah, but what happens if someone passes in a news object directly? ! sub _calling_display_task { ! my ( $self ) = @_; ! my $fakenews = $self->_create_news_object( type => 'onion' ); ! my $display_action = CTX->lookup_action( 'news' ); ! return $display_action->execute({ ! task => 'display', ! news => $fakenews ! }); ! } Now our automatic parameter discovery won't work. This is where the *************** *** 223,227 **** can have: ! [% INCLUDE examples/caching_perl_params_init | indent(4) %] And everything will work! --- 269,280 ---- can have: ! sub initialize_cache_params { ! my ( $self ) = @_; ! my %params = (); ! if ( my $news = $self->param( 'news' ) ) { ! $params{news_id} = $news->id; ! } ! return \%params; ! } And everything will work! *************** *** 240,244 **** an example: ! [% INCLUDE examples/caching_clear_cache_usage | indent(4) %] So when the 'list' method is called after a successful C<update()> on --- 293,320 ---- an example: ! sub update { ! my ( $self ) = @_; ! my $request = CTX->request; ! my $thingy_id = $self->param( 'thingy_id' ) ! || $request->param( 'thingy_id' ); ! my $thingy = eval { ! CTX->lookup_object( 'thingy' )->fetch( $thingy_id ); ! }; ! if ( $@ ) { ... } ! $thingy->{foo} = $request->param( 'foo' ); ! eval { $thingy->save }; ! if ( $@ ) { ! $self->param_add( error_msg => "Cannot save thingy: $@" ); ! return $self->execute({ ! task => 'display_form', ! thingy => $thingy ! }); ! } ! else { ! $self->clear_cache(); ! $self->param_add({ status_msg => "Thingy updated ok" }); ! return $self->execute({ task => 'list' }); ! } ! } So when the 'list' method is called after a successful C<update()> on *************** *** 258,262 **** following will return true: ! [% INCLUDE examples/caching_admin_check | indent(4) %] =head1 TEMPLATE CACHING --- 334,338 ---- following will return true: ! my $is_admin = CTX->request->auth_is_admin; =head1 TEMPLATE CACHING *************** *** 295,305 **** If you set this to 0 then caching will be disabled. This is useful when you're doing debugging on your site, but it can make things ! noticably slower if you have lots of requests, where 'lots' means ! 'more than a handful'. ! ! =item * ! ! C<dir.cache_tt>: The directory where we store the compiled templates ! in the filesystem. This is normally C<$WEBSITE_DIR/cache/tt> =item * --- 371,376 ---- If you set this to 0 then caching will be disabled. This is useful when you're doing debugging on your site, but it can make things ! noticably slower if you have lots of requests. (Note: 'lots' means ! 'more than a handful'.) =item * *************** *** 311,317 **** =item * ! C<content_generator.TT.compile_cleanup>: If set to a true value, we ! clean out the template compile directory when the Apache server starts ! up. =item * --- 382,388 ---- =item * ! C<content_generator.TT.compile_dir>: The directory where we store the ! compiled templates in the filesystem. This is normally C<cache/tt>, ! which gets resolved at runtime to C<$WEBSITE_DIR/cache/tt>. =item * *************** *** 320,323 **** --- 391,400 ---- template is compiled to the filesystem. + =item * + + C<content_generator.TT.compile_cleanup>: If set to a true value, we + clean out the template compile directory when the Apache server starts + up. + =back *************** *** 325,329 **** the C<OI2.TEMPLATE> logging key to 'DEBUG': ! [% INCLUDE examples/caching_template_logging | indent(4) %] Be warned: this produces a prodigious amount of messages. --- 402,410 ---- the C<OI2.TEMPLATE> logging key to 'DEBUG': ! Old value: ! log4perl.logger.OI2.TEMPLATE = WARN ! ! New value: ! log4perl.logger.OI2.TEMPLATE = DEBUG Be warned: this produces a prodigious amount of messages. |
From: Chris W. <la...@us...> - 2004-11-28 00:28:51
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23385/lib/OpenInteract2/Config Modified Files: Ini.pm Log Message: add functionality to bring in other INI configurations with @INCLUDE directive Index: Ini.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Config/Ini.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Ini.pm 9 Nov 2004 13:56:54 -0000 1.17 --- Ini.pm 27 Nov 2004 20:33:55 -0000 1.18 *************** *** 4,10 **** --- 4,13 ---- use strict; + use File::Basename qw( dirname ); + use File::Spec::Functions qw( catfile ); use Log::Log4perl qw( get_logger ); use OpenInteract2::Constants qw( :log ); use OpenInteract2::Context qw( CTX ); + use OpenInteract2::Exception qw( oi_error ); $OpenInteract2::Config::Ini::VERSION = sprintf("%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/); *************** *** 19,22 **** --- 22,26 ---- # comments (\%): key is full section name, value is comment scalar # filename ($): file read from + # directory ($): directory file read from sub new { *************** *** 25,34 **** --- 29,41 ---- my $self = bless( {}, $class ); if ( $self->{_m}{filename} = $params->{filename} ) { + $self->{_m}{directory} = $params->{directory} || dirname( $params->{filename} ); $self->_translate_ini( OpenInteract2::Config->read_file( $params->{filename} ) ); } elsif ( $params->{content} ) { + $self->{_m}{directory} = $params->{directory} || '.'; $self->_translate_ini( $params->{content} ); } elsif ( $params->{struct} ) { + $self->{_m}{directory} = $params->{directory} || '.'; $self->_translate_struct_to_ini( $params->{struct} ); } *************** *** 153,160 **** my $in_multiline = 0; # Cycle through the lines: skip blanks; accumulate comments for # each section; register section/subsection; add parameter/value ! for ( @{ $lines } ) { chomp; $line_number++; --- 160,169 ---- my $in_multiline = 0; + my $resolved_lines = $self->_resolve_all_includes( $lines ); + # Cycle through the lines: skip blanks; accumulate comments for # each section; register section/subsection; add parameter/value ! for ( @{ $resolved_lines } ) { chomp; $line_number++; *************** *** 236,239 **** --- 245,277 ---- + sub _resolve_all_includes { + my ( $self, $content ) = @_; + my @resolved = (); + for ( @{ $content } ) { + chomp; + if ( /^\@INCLUDE\s*=\s*(.*)\s*$/ ) { + my $include_file = $1; + my $absolute_file = catfile( $self->{_m}{directory}, $include_file ); + $log->is_debug && + $log->debug( "Asked to include file '$include_file'; ", + "using absolute filename ", $absolute_file ); + my $included_raw = eval { + OpenInteract2::Config->read_file( $absolute_file ) + }; + if ( $@ ) { + oi_error "Failed to read INI configuration -- cannot \@INCLUDE ", + "file '$include_file': $@"; + } + my $included_resolved = $self->_resolve_all_includes( $included_raw ); + push @resolved, @{ $included_resolved }; + } + else { + push @resolved, "$_\n"; + } + } + return \@resolved; + } + + sub _read_section_head { my ( $self, $full_section, $comments ) = @_; *************** *** 379,385 **** =head1 SYNOPSIS ! my $config = OpenInteract2::Config::Ini->new({ filename => 'myconf.ini' }); print "Main database driver is:", $config->{datasource}{main}{driver}, "\n"; $config->{datasource}{main}{username} = 'mariolemieux'; $config->write_file; --- 417,455 ---- =head1 SYNOPSIS ! # If no 'directory' specified @INCLUDE directives are assumed to be ! # in the same directory as the 'filename' ! ! my $config = OpenInteract2::Config::Ini->new({ ! filename => 'myconf.ini' ! }); ! ! # Pass in an explicit directory to resolve @INCLUDE directives ! ! my $config = OpenInteract2::Config::Ini->new({ ! filename => 'myconf.ini', ! directory => '/path/to/config', ! }); ! ! # Use a string with INI sections instead of a file; @INCLUDE ! # directives assumed to be in the current directory ! ! my $config = OpenInteract2::Config::Ini->new({ ! content => $some_string, ! }); ! ! # Pass in an explicit directory to resolve @INCLUDE directives ! ! my $config = OpenInteract2::Config::Ini->new({ ! content => $some_string, ! directory => '/path/to/config', ! }); ! ! # Use the configuration just like a hash print "Main database driver is:", $config->{datasource}{main}{driver}, "\n"; $config->{datasource}{main}{username} = 'mariolemieux'; + + # Write out the configuration; this should preserve order and + # comments + $config->write_file; *************** *** 440,448 **** @,object_field = active_on, content =back =head2 Example ! Given the following configuration in INI-style: [datasource] --- 510,550 ---- @,object_field = active_on, content + =item * + + From countless other configuration systems you can include the + contents of other files inline using '@INCLUDE'. So given the + following files: + + File: db_config.ini + [db] + dsn = DBI:Pg:dbname=foo + user = foo + password = bar + + File: caching.ini + [cache] + use = no + expiration = 600 + class = OpenInteract2::Cache::File + + [cache params] + directory = /path/to/cache + lock_directory = /path/to/cache_lock + + You can them bring them all together in one with: + + File: server.ini + [Global] + version = 1.19 + timezone = America/New_York + + @INCLUDE = db_config.ini + @INCLUDE = caching.ini + =back =head2 Example ! Given the following configurations: [datasource] *************** *** 533,540 **** translate it using the same means as reading a file. ! And if you pass in a hashref in the parameter 'struct' we attempt to ! map its keys and values to the internal format which can then be saved ! as normal. This will throw an exception if your structures are nested ! too deeply. For instance, this would be ok: my $foo = { --- 635,643 ---- translate it using the same means as reading a file. ! B<NOTE: THIS DOES NOT WORK YET> And if you pass in a hashref in the ! parameter 'struct' we attempt to map its keys and values to the ! internal format which can then be saved as normal. This will throw an ! exception if your structures are nested too deeply. For instance, this ! would be ok: my $foo = { *************** *** 619,622 **** --- 722,732 ---- C<$filename>. + Note: this B<DOES NOT> write any '@INCLUDE' directives back to the + files we read them from. Everything will be written to the same + file. (Patches welcome if you would like to change this, probably by + tagging the sections read in from a file with that absolute filename + and then writing those sections back out to the file from this + method.) + Items from the config object root go into 'Global'. *************** *** 636,643 **** Translate the arrayref C<\@lines> or the scalar C<content> from INI ! format into a Perl data structure. Returns: the object filled with the content. B<_read_section_head( $full_section, \@comments )> --- 746,766 ---- Translate the arrayref C<\@lines> or the scalar C<content> from INI ! format into a Perl data structure. Before we translate them into a ! data structure we first resolve all '@INCLUDE' directives. Returns: the object filled with the content. + B<_resolve_all_includes( \@lines )> + + Translate all '@INCLUDE' directives to the configuration they point + to. Throws an exception if we cannot read the file specified in the + directive. This file path is created by giving to C<catfile> in + L<File::Spec> the metadata value 'directory' (which can be passed in + to C<new()>) and the filename in the directive. + + Note that INCLUDE-ed files can themselves have '@INCLUDE' directives. + + Returns: arrayref of fully-resolved configuration. + B<_read_section_head( $full_section, \@comments )> |
From: Chris W. <la...@us...> - 2004-11-28 00:28:44
|
Update of /cvsroot/openinteract/OpenInteract2/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23385/t Modified Files: config_ini.t Log Message: add functionality to bring in other INI configurations with @INCLUDE directive Index: config_ini.t =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/config_ini.t,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** config_ini.t 12 Jun 2004 20:50:01 -0000 1.16 --- config_ini.t 27 Nov 2004 20:33:54 -0000 1.17 *************** *** 6,10 **** use lib 't/'; require 'utils.pl'; ! use Test::More tests => 38; require_ok( 'OpenInteract2::Config::Ini' ); --- 6,10 ---- use lib 't/'; require 'utils.pl'; ! use Test::More tests => 54; require_ok( 'OpenInteract2::Config::Ini' ); *************** *** 14,17 **** --- 14,19 ---- sub1 = val1 + @INCLUDE = included_config.ini + [head1] sub1 = val1 *************** *** 32,58 **** TEST { my $conf = eval { ! OpenInteract2::Config::Ini->new({ content => $test_config } ) }; ok( ! $@, "Object created (content)" ) || diag "Error: $@"; is( ref( $conf ), 'OpenInteract2::Config::Ini', ! 'Correct object type created (content)' ); is( $conf->{sub1}, 'val1', ! 'Global value read in correctly (content)' ); is( $conf->{head2}{sub1}, 'val1', ! 'Sub value scalar read in correctly (content)' ); is( $conf->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations read in correctly (content)' ); is( $conf->{head1}{sub1}[0], 'val1', ! 'Sub value array read in correctly (content)' ); is( $conf->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar read in correctly (content)' ); is_deeply( $conf->{head1}{sub2}, [ 'val1', 'val2' ], ! 'Sub value array with leading @, read in correctly (content)' ); is_deeply( $conf->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6 ) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members (content)' ); my $conf_data = $conf->as_data; --- 34,72 ---- TEST + my $config_file = get_use_file( 'test_config.ini', 'name' ); + { my $conf = eval { ! OpenInteract2::Config::Ini->new({ ! directory => get_use_dir(), ! content => $test_config, ! }) }; ok( ! $@, "Object created (content)" ) || diag "Error: $@"; is( ref( $conf ), 'OpenInteract2::Config::Ini', ! 'Correct object type created (from content)' ); is( $conf->{sub1}, 'val1', ! 'Global value read in correctly (from content)' ); is( $conf->{head2}{sub1}, 'val1', ! 'Sub value scalar read in correctly (from content)' ); is( $conf->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations read in correctly (from content)' ); is( $conf->{head1}{sub1}[0], 'val1', ! 'Sub value array read in correctly (from content)' ); is( $conf->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar read in correctly (from content)' ); is_deeply( $conf->{head1}{sub2}, [ 'val1', 'val2' ], ! 'Sub value array with leading @, read in correctly (from content)' ); is_deeply( $conf->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6 ) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members (from content)' ); ! is( $conf->{include}{position}, 'Center', ! 'Included scalar read in correctly (from content)' ); ! is_deeply( $conf->{include}{name}, [ 'Mario', 'Lemieux' ], ! 'Included array read in correctly (from content)' ); ! is_deeply( $conf->{include}{location}, [ 'Pittsburgh', 'Pennsylvania', 'USA' ], ! 'Included array with leading @, read in correctly (from content)' ); ! my $conf_data = $conf->as_data; *************** *** 60,132 **** 'Correct data type returned from as_data()' ); is( $conf_data->{sub1}, 'val1', ! 'Global value in as_data() correctly (content)' ); is( $conf_data->{head2}{sub1}, 'val1', ! 'Sub value scalar in as_data() correctly (content)' ); is( $conf_data->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations in as_data() correctly (content)' ); is( $conf_data->{head1}{sub1}[0], 'val1', ! 'Sub value array in as_data() correctly (content)' ); is( $conf_data->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar in as_data() correctly (content)' ); is( $conf_data->{head3}{child}{sub1}[0], 'val1', ! 'Nested sub value array in as_data() correctly (content)' ); is_deeply( $conf_data->{head1}{sub2}, [ 'val1', 'val2' ], 'Sub value array with leading @, read in correctly in ' . ! 'as_data() (content)' ); is_deeply( $conf_data->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members in as_data() (content)' ); } { - my $config_file = get_use_file( 'test_config.ini', 'name' ); my $conf = eval { OpenInteract2::Config::Ini->new({ filename => $config_file } ) }; ! ok( ! $@, "Object created (file)" ) || diag "Error: $@"; is( ref( $conf ), 'OpenInteract2::Config::Ini', ! 'Correct object type created (file)' ); is( $conf->{sub1}, 'val1', ! 'Global value read in correctly (file)' ); is( $conf->{head2}{sub1}, 'val1', ! 'Sub value scalar read in correctly (file)' ); is( $conf->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations read in correctly (file)' ); is( $conf->{head1}{sub1}[0], 'val1', ! 'Sub value array read in correctly (file)' ); is( $conf->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar read in correctly (file)' ); is( $conf->{head3}{child}{sub1}[0], 'val1', ! 'Nested sub value array read in correctly (file)' ); is_deeply( $conf->{head1}{sub2}, [ 'val1', 'val2' ], ! 'Sub value array with leading @, read in correctly (file)' ); is_deeply( $conf->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6 ) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members (file)' ); my $conf_data = $conf->as_data; is( ref( $conf_data ), 'HASH', ! 'Correct data type returned from as_data() (file)' ); is( $conf_data->{sub1}, 'val1', ! 'Global value in as_data() correctly (file)' ); is( $conf_data->{head2}{sub1}, 'val1', ! 'Sub value scalar in as_data() correctly (file)' ); is( $conf->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations in as_data() correctly (file)' ); is( $conf_data->{head1}{sub1}[0], 'val1', ! 'Sub value array in as_data() correctly (file)' ); is( $conf_data->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar in as_data() correctly (file)' ); is( $conf_data->{head3}{child}{sub1}[0], 'val1', ! 'Nested sub value array in as_data() correctly (file)' ); is_deeply( $conf_data->{head1}{sub2}, [ 'val1', 'val2' ], 'Sub value array with leading @, read in correctly in ' . ! 'as_data() (file)' ); is_deeply( $conf_data->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members in as_data() (file)' ); } --- 74,187 ---- 'Correct data type returned from as_data()' ); is( $conf_data->{sub1}, 'val1', ! 'Global value in as_data() correctly (from content)' ); is( $conf_data->{head2}{sub1}, 'val1', ! 'Sub value scalar in as_data() correctly (from content)' ); is( $conf_data->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations in as_data() correctly (from content)' ); is( $conf_data->{head1}{sub1}[0], 'val1', ! 'Sub value array in as_data() correctly (from content)' ); is( $conf_data->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar in as_data() correctly (from content)' ); is( $conf_data->{head3}{child}{sub1}[0], 'val1', ! 'Nested sub value array in as_data() correctly (from content)' ); is_deeply( $conf_data->{head1}{sub2}, [ 'val1', 'val2' ], 'Sub value array with leading @, read in correctly in ' . ! 'as_data() (from content)' ); is_deeply( $conf_data->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members in as_data() (from content)' ); ! is( $conf_data->{include}{position}, 'Center', ! 'Included scalar read in correctly in as_data() (from content)' ); ! is_deeply( $conf_data->{include}{name}, [ 'Mario', 'Lemieux' ], ! 'Included array read in correctly in as_data() (from content)' ); ! is_deeply( $conf_data->{include}{location}, [ 'Pittsburgh', 'Pennsylvania', 'USA' ], ! 'Included array with leading @, read in correctly in as_data() (from content)' ); } { my $conf = eval { OpenInteract2::Config::Ini->new({ filename => $config_file } ) }; ! ok( ! $@, "Object created (from file)" ) || diag "Error: $@"; is( ref( $conf ), 'OpenInteract2::Config::Ini', ! 'Correct object type created (from file)' ); is( $conf->{sub1}, 'val1', ! 'Global value read in correctly (from file)' ); is( $conf->{head2}{sub1}, 'val1', ! 'Sub value scalar read in correctly (from file)' ); is( $conf->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations read in correctly (from file)' ); is( $conf->{head1}{sub1}[0], 'val1', ! 'Sub value array read in correctly (from file)' ); is( $conf->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar read in correctly (from file)' ); is( $conf->{head3}{child}{sub1}[0], 'val1', ! 'Nested sub value array read in correctly (from file)' ); is_deeply( $conf->{head1}{sub2}, [ 'val1', 'val2' ], ! 'Sub value array with leading @, read in correctly (from file)' ); is_deeply( $conf->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6 ) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members (from file)' ); ! is( $conf->{include}{position}, 'Center', ! 'Included scalar read in correctly (from file)' ); ! is_deeply( $conf->{include}{name}, [ 'Mario', 'Lemieux' ], ! 'Included array read in correctly (from file)' ); ! is_deeply( $conf->{include}{location}, [ 'Pittsburgh', 'Pennsylvania', 'USA' ], ! 'Included array with leading @, read in correctly (from file)' ); my $conf_data = $conf->as_data; is( ref( $conf_data ), 'HASH', ! 'Correct data type returned from as_data() (from file)' ); is( $conf_data->{sub1}, 'val1', ! 'Global value in as_data() correctly (from file)' ); is( $conf_data->{head2}{sub1}, 'val1', ! 'Sub value scalar in as_data() correctly (from file)' ); is( $conf->{head2}{sub2}, 'this is a longer value with a line continuation', ! 'Sub value scalar with line continuations in as_data() correctly (from file)' ); is( $conf_data->{head1}{sub1}[0], 'val1', ! 'Sub value array in as_data() correctly (from file)' ); is( $conf_data->{head3}{child}{sub2}, 'val3', ! 'Nested sub value scalar in as_data() correctly (from file)' ); is( $conf_data->{head3}{child}{sub1}[0], 'val1', ! 'Nested sub value array in as_data() correctly (from file)' ); is_deeply( $conf_data->{head1}{sub2}, [ 'val1', 'val2' ], 'Sub value array with leading @, read in correctly in ' . ! 'as_data() (from file)' ); is_deeply( $conf_data->{head3}{child}{sub1}, [ qw( val1 val2 val3 val4 val5 val6) ], 'Nested sub value array declared with mixed @, and line has ' . ! 'correct members in as_data() (from file)' ); ! is( $conf_data->{include}{position}, 'Center', ! 'Included scalar read in correctly in as_data() (from file)' ); ! is_deeply( $conf_data->{include}{name}, [ 'Mario', 'Lemieux' ], ! 'Included array read in correctly in as_data() (from file)' ); ! is_deeply( $conf_data->{include}{location}, [ 'Pittsburgh', 'Pennsylvania', 'USA' ], ! 'Included array with leading @, read in correctly in as_data() (from file)' ); ! } ! ! # ensure @INCLUDE not found throws exception ! ! { ! my $conf = eval { ! OpenInteract2::Config::Ini->new({ content => $test_config }) ! }; ! ok( $@, 'Exception correctly thrown if we cannot find @INCLUDE specified in content' ); ! my $error = "$@"; ! like( $error, qr/Config file '\..+included_config.ini' does not exist/, ! 'Expected exception thrown with @INCLUDE not found' ); } + { + my $conf = eval { + OpenInteract2::Config::Ini->new({ + filename => $config_file, + directory => 'somepath', + }) + }; + ok( $@, 'Exception correctly thrown if we feed bad directory to @INCLUDE specified in file' ); + my $error = "$@"; + like( $error, qr/Config file 'somepath.+included_config.ini' does not exist/, + 'Expected exception thrown with @INCLUDE not found' ); + } |
From: Chris W. <la...@us...> - 2004-11-28 00:12:05
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4347 Modified Files: Action.pm Log Message: add 'cache_expire' to property listing so the values get copied when we do a clone(); add debugging entries to better trace caching execution Index: Action.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Action.pm,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** Action.pm 8 Nov 2004 14:40:17 -0000 1.59 --- Action.pm 28 Nov 2004 00:11:52 -0000 1.60 *************** *** 141,145 **** unless ( $CONFIG_ACTIONS{ $name } ) { $log->is_debug && ! $log->debug( "Config action not found for '$name', creating..." ); my $impl_class = $action_info->{class}; if ( $impl_class ) { --- 141,146 ---- unless ( $CONFIG_ACTIONS{ $name } ) { $log->is_debug && ! $log->debug( "Action from configuration has not yet been created for ", ! "'$name', creating..." ); my $impl_class = $action_info->{class}; if ( $impl_class ) { *************** *** 147,151 **** eval "require $impl_class"; if ( $@ ) { ! my $msg = "Cannot include library '$impl_class': $@"; $log->error( $msg ); oi_error $msg; --- 148,153 ---- eval "require $impl_class"; if ( $@ ) { ! my $msg = "Cannot include library '$impl_class' to " . ! "implement action '$name': $@"; $log->error( $msg ); oi_error $msg; *************** *** 240,252 **** } # These checks will die if they fail -- let the error bubble up $self->_check_task_validity; $log->is_debug && ! $log->debug( "Task is valid, continuing" ); $self->_check_security; $log->is_debug && ! $log->debug( "Task security checked, continuing" ); # Check cache and return if found --- 242,256 ---- } + my $item_desc = '[' . $self->name . ': ' . $self->task . ']'; + # These checks will die if they fail -- let the error bubble up $self->_check_task_validity; $log->is_debug && ! $log->debug( "Action $item_desc is valid, continuing" ); $self->_check_security; $log->is_debug && ! $log->debug( "Action $item_desc security checked, continuing" ); # Check cache and return if found *************** *** 257,281 **** } $log->is_debug && ! $log->debug( "Cached data not found, continuing" ); my $method_ref = $self->_find_task_method; $log->is_debug && ! $log->debug( "Found task method ok, running" ); my $content = eval { $self->$method_ref }; if ( $@ ) { ! $log->warn( "Caught error from task: $@" ); $content = $@; } else { $log->is_debug && ! $log->debug( "Task executed ok, excuting filters" ); $self->notify_observers( 'filter', \$content ); $log->is_debug && ! $log->debug( "Filters ran ok, saving to cache" ); ! if ( my $cache_expire = $self->_is_using_cache ) { $self->_set_cached_content( $content, $cache_expire ); } } return $content; --- 261,293 ---- } $log->is_debug && ! $log->debug( "Cached data not found for $item_desc, continuing" ); my $method_ref = $self->_find_task_method; $log->is_debug && ! $log->debug( "Found task method for $item_desc ok, running" ); my $content = eval { $self->$method_ref }; if ( $@ ) { ! $log->warn( "Caught error from task $item_desc: $@" ); $content = $@; } else { $log->is_debug && ! $log->debug( "Task $item_desc executed ok, excuting filters" ); $self->notify_observers( 'filter', \$content ); $log->is_debug && ! $log->debug( "Filters for $item_desc ran ok, checking cacheable" ); ! my $cache_expire = $self->_is_using_cache; ! if ( $cache_expire ) { ! $log->is_debug && ! $log->debug( "This content is cacheable and has expiration ", ! "'$cache_expire'; caching content..." ); $self->_set_cached_content( $content, $cache_expire ); } + else { + $log->is_debug && + $log->debug( "Content from $item_desc not cacheable" ); + } } return $content; *************** *** 481,485 **** $log->is_debug && ! $log->debug( "Generating content for [", $self->name, "]" ); $content_params->{ACTION} = $self; --- 493,498 ---- $log->is_debug && ! $log->debug( "Generating content for [", $self->name, ": ", ! $self->task, "]" ); $content_params->{ACTION} = $self; *************** *** 555,560 **** sub initialize_cache_params { return undef } ! # Just ensure that every value is a number; also allow simple time ! # substitutions (e.g., '180m' or '3h' instead of '10800' seconds). sub cache_expire { --- 568,574 ---- sub initialize_cache_params { return undef } ! # Property: Just ensure that every value is a number; also allow ! # simple time substitutions (e.g., '180m' or '3h' instead of '10800' ! # seconds). sub cache_expire { *************** *** 573,579 **** } if ( $cache_info ) { ! $log->info( "Assigned cache expiration: ", ! join( '; ', map { "$_ = $self->{cache_expire}{ $_ }" } ! keys %{ $self->{cache_expire} } ) ); } return $self->{cache_expire}; --- 587,594 ---- } if ( $cache_info ) { ! $log->is_debug && ! $log->debug( "Assigned cache expiration for ", $self->name, ": ", ! join( '; ', map { "$_ = $self->{cache_expire}{ $_ }" } ! keys %{ $self->{cache_expire} } ) ); } return $self->{cache_expire}; *************** *** 624,630 **** } $tracking->{ $class } = []; ! $cache->set({ key => CACHE_CLASS_KEY, ! data => $tracking }); ! $log->is_debug && $log->debug( "Tracking data saved back" ); $log->is_info && $log->info( "Finished clearing cache for '$class'" ); return $num_cleared; --- 639,647 ---- } $tracking->{ $class } = []; ! $cache->set({ ! key => CACHE_CLASS_KEY, ! data => $tracking ! }); ! $log->is_debug && $log->debug( "Tracking data saved back to cache" ); $log->is_info && $log->info( "Finished clearing cache for '$class'" ); return $num_cleared; *************** *** 635,644 **** my ( $self ) = @_; my $expire = $self->cache_expire; ! return unless ( ref $expire eq 'HASH' ); ! my $time = $expire->{ $self->task } || $expire->{ CACHE_ALL_KEY() }; $log->is_debug && $log->debug( "Action/task ", $self->name, "/", $self->task, " ", ! "cached at time ", $time ); ! return $time; } --- 652,663 ---- my ( $self ) = @_; my $expire = $self->cache_expire; ! unless ( ref $expire eq 'HASH' ) { ! return; ! } ! my $expire_time = $expire->{ $self->task } || $expire->{ CACHE_ALL_KEY() }; $log->is_debug && $log->debug( "Action/task ", $self->name, "/", $self->task, " ", ! "has cache expiration: ", $expire_time ); ! return $expire_time; } *************** *** 696,705 **** my $cache = CTX->cache; ! return unless ( $cache ); my $key = $self->_create_cache_key(); ! $cache->set({ key => $key, ! data => $content, ! expire => $expiration }); # Now set the tracking data so we can expire when needed --- 715,730 ---- my $cache = CTX->cache; ! unless ( $cache ) { ! $log->warn( "No cache object returned from content; cannot cache ", ! "content from action" ); ! return; ! } my $key = $self->_create_cache_key(); ! $cache->set({ ! key => $key, ! data => $content, ! expire => $expiration ! }); # Now set the tracking data so we can expire when needed *************** *** 709,715 **** push @{ $tracking->{ $class } }, $key; $log->is_debug && ! $log->debug( "Adding cache key [$key] to class [$class]" ); ! $cache->set({ key => CACHE_CLASS_KEY, ! data => $tracking }); } --- 734,742 ---- push @{ $tracking->{ $class } }, $key; $log->is_debug && ! $log->debug( "Adding tracking cache key '$key' to class '$class'" ); ! $cache->set({ ! key => CACHE_CLASS_KEY, ! data => $tracking ! }); } *************** *** 723,727 **** my $params = $self->cache_param; return [] unless ( ref $params eq 'HASH' ); ! return $params->{ $task }; } --- 750,754 ---- my $params = $self->cache_param; return [] unless ( ref $params eq 'HASH' ); ! return $params->{ $task } || []; } *************** *** 734,737 **** --- 761,766 ---- # will be ignored. + # See 'cache_expire' as well + sub name { my ( $self ) = @_; *************** *** 808,814 **** return $self->{ $prop }; } ! return { map { $_ => $self->{ $_ } } ( keys %PROPS, 'is_secure', 'name' ) }; } # Clear out a property (since passing undef for a set won't work) --- 837,849 ---- return $self->{ $prop }; } ! return { map { $_ => $self->{ $_ } } $self->property_names }; } + # All items in %PROPS plus special properties we handle separately; + # 'cache_expire' is handled in the caching section + + sub property_names { + return ( keys %PROPS, 'is_secure', 'name', 'cache_expire' ); + } # Clear out a property (since passing undef for a set won't work) |
From: Chris W. <la...@us...> - 2004-11-28 00:10:39
|
Update of /cvsroot/openinteract/OpenInteract2/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4012/t Modified Files: utils.pl Log Message: package upgrade Index: utils.pl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/utils.pl,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** utils.pl 27 Nov 2004 20:38:10 -0000 1.75 --- utils.pl 28 Nov 2004 00:10:28 -0000 1.76 *************** *** 45,49 **** return ( base => '2.10', ! base_box => '2.16', base_error => '2.10', base_group => '2.15', --- 45,49 ---- return ( base => '2.10', ! base_box => '2.17', base_error => '2.10', base_group => '2.15', |
From: Chris W. <la...@us...> - 2004-11-28 00:10:38
|
Update of /cvsroot/openinteract/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4012 Modified Files: MANIFEST Log Message: package upgrade Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/MANIFEST,v retrieving revision 1.95 retrieving revision 1.96 diff -C2 -d -r1.95 -r1.96 *** MANIFEST 27 Nov 2004 19:00:26 -0000 1.95 --- MANIFEST 28 Nov 2004 00:10:27 -0000 1.96 *************** *** 158,162 **** lib/OpenInteract2/Util.pm pkg/base-2.10.zip ! pkg/base_box-2.16.zip pkg/base_error-2.10.zip pkg/base_group-2.15.zip --- 158,162 ---- lib/OpenInteract2/Util.pm pkg/base-2.10.zip ! pkg/base_box-2.17.zip pkg/base_error-2.10.zip pkg/base_group-2.15.zip |
From: Chris W. <la...@us...> - 2004-11-27 23:49:43
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/SessionManager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19540/SessionManager Modified Files: SQLite.pm File.pm DBI.pm Log Message: cosmetic Index: SQLite.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/SessionManager/SQLite.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SQLite.pm 18 Feb 2004 05:25:28 -0000 1.3 --- SQLite.pm 27 Nov 2004 22:55:53 -0000 1.4 *************** *** 27,34 **** } else { ! oi_error "Insufficient parameters (this should have been caught earlier)"; } $log->is_debug && ! $log->debug( "Trying to fetch SQLite session [$session_id] ", "[DSN: $params{DataSource}] [Impl: $impl_class] ", "[Handle: $params{Handle}]" ); --- 27,35 ---- } else { ! oi_error "Insufficient parameters (this should have been caught ", ! "earlier): no 'Handle' or 'DataSource' defined"; } $log->is_debug && ! $log->debug( "Trying to fetch SQLite session '$session_id' ", "[DSN: $params{DataSource}] [Impl: $impl_class] ", "[Handle: $params{Handle}]" ); Index: File.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/SessionManager/File.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** File.pm 13 Jun 2004 18:15:06 -0000 1.5 --- File.pm 27 Nov 2004 22:55:54 -0000 1.6 *************** *** 23,27 **** my $session_params = $session_config->{params}; $log->is_info && ! $log->info( "Trying to fetch File session [$session_id] ", "with [Dir: $session_params->{Directory}] ", "[LockDir: $session_params->{LockDirectory}] ", --- 23,27 ---- my $session_params = $session_config->{params}; $log->is_info && ! $log->info( "Trying to fetch File session '$session_id' ", "with [Dir: $session_params->{Directory}] ", "[LockDir: $session_params->{LockDirectory}] ", *************** *** 106,111 **** [session_info params] ! Directory cache/sessions ! LockDirectory cache/sessions_lock becomes: --- 106,111 ---- [session_info params] ! Directory = cache/sessions ! LockDirectory = cache/sessions_lock becomes: Index: DBI.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/SessionManager/DBI.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DBI.pm 18 Feb 2004 05:25:28 -0000 1.3 --- DBI.pm 27 Nov 2004 22:55:54 -0000 1.4 *************** *** 33,37 **** $session_params->{LockHandle} = $session_params->{Handle}; $log->is_debug && ! $log->debug( "Using MySQL session store, with LockHandle parameter" ); } --- 33,37 ---- $session_params->{LockHandle} = $session_params->{Handle}; $log->is_debug && ! $log->debug( "Using MySQL store + LockHandle parameter" ); } |
From: Chris W. <la...@us...> - 2004-11-27 22:57:19
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19847 Modified Files: SessionManager.pm Log Message: explicitly ->delete() sessions with no relevant data so we don't get a bunch of empty sessions Index: SessionManager.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/SessionManager.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SessionManager.pm 18 Feb 2004 05:25:26 -0000 1.7 --- SessionManager.pm 27 Nov 2004 22:56:51 -0000 1.8 *************** *** 29,33 **** }; if ( $@ ) { ! $log->warn( "Error fetching session with ID [$session_id]: $@\n", "Continuing..." ); OpenInteract2::Cookie->expire( SESSION_COOKIE ); --- 29,33 ---- }; if ( $@ ) { ! $log->warn( "Error fetching session with ID '$session_id': $@\n", "Continuing..." ); OpenInteract2::Cookie->expire( SESSION_COOKIE ); *************** *** 86,125 **** my ( $class, $session ) = @_; $log ||= get_logger( LOG_SESSION ); ! return 1 unless ( ref $session ); if ( tied %{ $session } ) { ! my %useful_session_keys = map { $_ => 1 } keys %{ $session }; ! delete $useful_session_keys{_session_id}; ! delete $useful_session_keys{is_new}; ! if ( ref $session->{_oi_cache} and ! scalar keys %{ $session->{_oi_cache} } == 0 ) { ! delete $useful_session_keys{_oi_cache}; ! } ! if ( scalar keys %useful_session_keys > 0 ) { ! my $is_new = $session->{is_new}; ! delete $session->{is_new}; ! $class->_save_session( $session, $is_new ); ! } ! else { ! $log->is_debug && ! $log->debug( "Tied session found, not saving since ", ! "it doesn't have useful info" ); ! } } elsif ( ref $session eq 'HASH' ) { ! return 1 unless ( scalar keys %{ $session } ); ! $log->is_info && ! $log->info( "Create new session with data from hashref" ); ! my $new_session = $class->_create_session; ! if ( $new_session ) { ! foreach my $key ( keys %{ $session } ) { ! $new_session->{ $key } = $session->{ $key }; ! } ! $class->_save_session( $new_session, 1 ); ! } ! else { ! $log->error( "No value returned from _create_session; ", ! "this shouldn't happen..." ); ! } } else { --- 86,100 ---- my ( $class, $session ) = @_; $log ||= get_logger( LOG_SESSION ); ! ! unless ( ref $session ) { ! $log->is_info && $log->info( "No session found, not storing" ); ! return 1; ! } if ( tied %{ $session } ) { ! $class->_store_tied_session( $session ); } elsif ( ref $session eq 'HASH' ) { ! $class->_store_hashref_session( $session ); } else { *************** *** 130,134 **** --- 105,154 ---- } + sub _store_tied_session { + my ( $class, $session ) = @_; + my %useful_session_keys = map { $_ => 1 } keys %{ $session }; + delete $useful_session_keys{_session_id}; + delete $useful_session_keys{is_new}; + if ( ref $session->{_oi_cache} and + scalar keys %{ $session->{_oi_cache} } == 0 ) { + delete $useful_session_keys{_oi_cache}; + } + if ( scalar keys %useful_session_keys > 0 ) { + $log->is_info && + $log->info( "Storing tied session because of useful keys: ", + join( ', ', keys %useful_session_keys ) ); + my $is_new = $session->{is_new}; + delete $session->{is_new}; + $class->_save_session( $session, $is_new ); + } + else { + $log->is_debug && + $log->debug( "Tied session, no useful info; removing..." ); + tied( %{ $session } )->delete(); + } + } + sub _store_hashref_session { + my ( $class, $session ) = @_; + unless ( scalar keys %{ $session } ) { + $log->is_debug && + $log->debug( "Hashref session, no useful info; not storing..." ); + return 1; + } + $log->is_info && + $log->info( "Create new session with data from hashref using ", + "keys: ", keys %{ $session } ); + my $new_session = $class->_create_session; + if ( $new_session ) { + foreach my $key ( keys %{ $session } ) { + $new_session->{ $key } = $session->{ $key }; + } + $class->_save_session( $new_session, 1 ); + } + else { + $log->error( "No value returned from _create_session; ", + "this shouldn't happen..." ); + } + } sub _save_session { *************** *** 150,154 **** if ( $is_new ) { $log->is_info && ! $log->info( "Sending cookie for new session" ); OpenInteract2::Cookie->create( { name => SESSION_COOKIE, --- 170,175 ---- if ( $is_new ) { $log->is_info && ! $log->info( "Sending cookie for new session; cookie should ", ! "expire in: ", $expiration ); OpenInteract2::Cookie->create( { name => SESSION_COOKIE, |
From: Chris W. <la...@us...> - 2004-11-27 21:44:40
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_template/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3820/pkg/base_template/OpenInteract2 Modified Files: SiteTemplate.pm Log Message: add changes + package version updates for Salve's changes Index: SiteTemplate.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_template/OpenInteract2/SiteTemplate.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SiteTemplate.pm 18 Feb 2004 05:23:09 -0000 1.11 --- SiteTemplate.pm 27 Nov 2004 19:00:28 -0000 1.12 *************** *** 337,342 **** --- 337,349 ---- my ( $class, $package_name ) = @_; return undef unless ( $package_name ); + $log ||= get_logger( LOG_TEMPLATE ); my $package = CTX->repository ->fetch_package( $package_name ); + unless ( $package ) { + $log->warn( "Trying to lookup package template directory for ", + "'$package_name' but the repository didn't return ", + "a package for that name" ); + return undef; + } return File::Spec->catfile( $package->directory, 'template' ); } |
From: Chris W. <la...@us...> - 2004-11-27 21:21:19
|
Update of /cvsroot/openinteract/OpenInteract2/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29019/t Modified Files: url.t Log Message: don't escape or add contextualization to URLs passed to create() that begin with an 'http:' Index: url.t =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/url.t,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** url.t 25 Nov 2004 03:51:43 -0000 1.13 --- url.t 27 Nov 2004 18:27:33 -0000 1.14 *************** *** 7,11 **** require 'utils.pl'; use OpenInteract2::Context qw( CTX ); ! use Test::More tests => 109; initialize_context(); --- 7,11 ---- require 'utils.pl'; use OpenInteract2::Context qw( CTX ); ! use Test::More tests => 112; initialize_context(); *************** *** 324,328 **** --- 324,346 ---- } + # Ensure absolute URL is not modified + + { + CTX->assign_deploy_url( '/OpenInteract' ); + my $url = 'http://www.my.server/foo/'; + my $create_url = $UCL->create( $url ); + is( $create_url, $url, + 'Absolute URL is not modified with create()' ); + my %params = ( id => 55, undercover => 'yes' ); + $create_url = $UCL->create( $url, \%params ); + compare_urls( $url, \%params, $create_url, + 'Absolute URL not modified with create() but parameters added ok' ); + + } + + + { + CTX->assign_deploy_url( '/OpenInteract' ); my $url = '/OpenInteract/foo/bar'; my $strip_url = $UCL->strip_deployment_context( $url ); |
From: Chris W. <la...@us...> - 2004-11-27 21:19:25
|
Update of /cvsroot/openinteract/OpenInteract2/extra_packages/delicious_tags/template In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25943/template Modified Files: tagged_objects.tmpl tag_listing.tmpl Log Message: add a couple of SPAN tags Index: tagged_objects.tmpl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/extra_packages/delicious_tags/template/tagged_objects.tmpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tagged_objects.tmpl 25 Nov 2004 03:14:05 -0000 1.2 --- tagged_objects.tmpl 27 Nov 2004 18:16:13 -0000 1.3 *************** *** 1,4 **** [% FOREACH info = tag_info; item_url = OI.make_url( BASE = info.url, do_not_escape = 1 ) %] ! o [% info.object_type %]: <a href="[% item_url %]">[% info.name %]</a> <br /> [% END %] \ No newline at end of file --- 1,4 ---- [% FOREACH info = tag_info; item_url = OI.make_url( BASE = info.url, do_not_escape = 1 ) %] ! o <span class="taggedObject">[% info.object_type %]: <a href="[% item_url %]">[% info.name %]</a></span><br /> [% END %] \ No newline at end of file Index: tag_listing.tmpl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/extra_packages/delicious_tags/template/tag_listing.tmpl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tag_listing.tmpl 27 Nov 2004 17:07:08 -0000 1.1 --- tag_listing.tmpl 27 Nov 2004 18:16:13 -0000 1.2 *************** *** 3,6 **** TASK = 'show_tagged_objects', tag = tag_count.0 ); %] ! o <a href="[% tagged_objects_url %]">[% tag_count.0 %]</a> ([% tag_count.1 %]) <br /> [% END %] --- 3,6 ---- TASK = 'show_tagged_objects', tag = tag_count.0 ); %] ! o <span class="tagListing"><a href="[% tagged_objects_url %]">[% tag_count.0 %]</a> ([% tag_count.1 %])</span><br /> [% END %] |
From: Chris W. <la...@us...> - 2004-11-27 21:19:17
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29019/lib/OpenInteract2 Modified Files: URL.pm Log Message: don't escape or add contextualization to URLs passed to create() that begin with an 'http:' Index: URL.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/URL.pm,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** URL.pm 25 Nov 2004 03:51:44 -0000 1.27 --- URL.pm 27 Nov 2004 18:27:33 -0000 1.28 *************** *** 96,101 **** } $log->is_debug && ! $log->debug( "Creating deployment URL from '$url_base' ", ! "and params '$param_info'" ); return $class->_create_deployment( DEPLOY_URL, $url_base, $params, $do_not_escape ); --- 96,101 ---- } $log->is_debug && ! $log->debug( "Creating deployment URL from '$url_base' ", ! "and params '$param_info'" ); return $class->_create_deployment( DEPLOY_URL, $url_base, $params, $do_not_escape ); *************** *** 119,127 **** sub _create_deployment { my ( $class, $deploy_under, $url_base, $params, $do_not_escape ) = @_; ! unless ( $do_not_escape ) { ! $url_base = _url_escape( $url_base ); ! } ! if ( $deploy_under ) { ! $url_base = join( '', $deploy_under, $url_base ); } $params ||= {}; --- 119,133 ---- sub _create_deployment { my ( $class, $deploy_under, $url_base, $params, $do_not_escape ) = @_; ! my ( $is_absolute ) = $url_base =~ /^\s*http:/; ! ! # Absolute URLs don't get touched, so the escaping + ! # contextualization doesn't get done to them ! unless ( $is_absolute ) { ! unless ( $do_not_escape ) { ! $url_base = _url_escape( $url_base ); ! } ! if ( $deploy_under ) { ! $url_base = join( '', $deploy_under, $url_base ); ! } } $params ||= {}; *************** *** 364,367 **** --- 370,376 ---- /foo/bar%20is%20baz/ + Finally: if C<$base_url> begins with 'http:' we do not modify it in + any way (including escaping it) except to append the C<\%params>. + Return: URL formed from the deployed context, C<$base_url> and C<\%params>. |
From: Chris W. <la...@us...> - 2004-11-27 20:47:46
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Manage/Website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26076/lib/OpenInteract2/Manage/Website Modified Files: ThemeInstall.pm Log Message: OIN-104: if there's no request return nothing for the security scopes; also ensure that the 'install_theme' management task works properly Index: ThemeInstall.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Manage/Website/ThemeInstall.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ThemeInstall.pm 13 Jun 2004 18:19:54 -0000 1.10 --- ThemeInstall.pm 27 Nov 2004 20:47:22 -0000 1.11 *************** *** 51,60 **** my $themeball = $self->param( 'theme_data' ); my $theme_meta = shift @{ $themeball }; ! my $theme_data = $self->_map_fields( $theme_meta->{theme_fields}, ! shift @{ $themeball } ); my ( $theme ); eval { $theme = CTX->lookup_object( 'theme' )->new( $theme_data ); ! $theme->save }; if ( $@ ) { --- 51,65 ---- my $themeball = $self->param( 'theme_data' ); my $theme_meta = shift @{ $themeball }; ! my $theme_data = $self->_map_fields( ! $theme_meta->{theme_fields}, shift @{ $themeball } ! ); ! ! my $default_parent = CTX->lookup_default_object_id( 'theme' ); ! $theme_data->{parent} = $default_parent; ! my ( $theme ); eval { $theme = CTX->lookup_object( 'theme' )->new( $theme_data ); ! $theme->save; }; if ( $@ ) { *************** *** 67,72 **** my $props = 0; foreach my $prop_raw ( @{ $themeball } ) { ! my $prop_data = $self->_map_fields( $theme_meta->{theme_prop_fields}, ! $prop_raw ); my $prop = $themeprop_class->new( $prop_data ); $prop->{theme_id} = $theme_id; --- 72,78 ---- my $props = 0; foreach my $prop_raw ( @{ $themeball } ) { ! my $prop_data = $self->_map_fields( ! $theme_meta->{theme_prop_fields}, $prop_raw ! ); my $prop = $themeprop_class->new( $prop_data ); $prop->{theme_id} = $theme_id; *************** *** 75,79 **** } $self->_ok( $action, ! "Theme (ID: $theme_id) and $props properties saved ok" ); return; } --- 81,85 ---- } $self->_ok( $action, ! "New theme (ID: $theme_id) and $props properties saved ok" ); return; } |
From: Chris W. <la...@us...> - 2004-11-27 20:47:32
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26076/lib/OpenInteract2 Modified Files: SPOPS.pm Log Message: OIN-104: if there's no request return nothing for the security scopes; also ensure that the 'install_theme' management task works properly Index: SPOPS.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/SPOPS.pm,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** SPOPS.pm 26 Feb 2004 00:58:57 -0000 1.25 --- SPOPS.pm 27 Nov 2004 20:47:21 -0000 1.26 *************** *** 267,276 **** # Override method in SPOPS::Secure since we already know the ! # user/group information from $R sub get_security_scopes { my ( $self, $p ) = @_; my $req = CTX->request; ! return ( $req->auth_user, $req->auth_group ); } --- 267,281 ---- # Override method in SPOPS::Secure since we already know the ! # user/group information from the context sub get_security_scopes { my ( $self, $p ) = @_; my $req = CTX->request; ! if ( $req ) { ! return ( $req->auth_user, $req->auth_group ); ! } ! else { ! return ( undef, [] ); ! } } *************** *** 293,297 **** sub global_datasource_handle { my ( $self, $connect_key ) = @_; ! $connect_key ||= $self->CONFIG->{datasource}; return CTX->datasource( $connect_key ); } --- 298,302 ---- sub global_datasource_handle { my ( $self, $connect_key ) = @_; ! $connect_key ||= $self->CONFIG->{datasource_config}{spops}; return CTX->datasource( $connect_key ); } |
From: Chris W. <la...@us...> - 2004-11-27 20:34:31
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23498/lib/OpenInteract2 Modified Files: Config.pm Log Message: modify error messages a little Index: Config.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Config.pm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Config.pm 13 Jun 2004 03:02:29 -0000 1.13 --- Config.pm 27 Nov 2004 20:34:15 -0000 1.14 *************** *** 38,42 **** my ( $class, $filename ) = @_; unless ( -f $filename ) { ! oi_error "Config file [$filename] does not exist"; } } --- 38,42 ---- my ( $class, $filename ) = @_; unless ( -f $filename ) { ! oi_error "Config file '$filename' does not exist"; } } *************** *** 47,53 **** $log ||= get_logger( LOG_CONFIG ); $log->is_debug && ! $log->debug( "Config trying to read file [$filename]" ); open( CONF, '<', $filename ) ! || oi_error "Cannot open [$filename] for reading: $!"; my @lines = <CONF>; close( CONF ); --- 47,54 ---- $log ||= get_logger( LOG_CONFIG ); $log->is_debug && ! $log->debug( "Config trying to read file '$filename'" ); ! $class->is_file_valid( $filename ); open( CONF, '<', $filename ) ! || oi_error "Cannot read config '$filename': $!"; my @lines = <CONF>; close( CONF ); |
From: Chris W. <la...@us...> - 2004-11-27 20:34:11
|
Update of /cvsroot/openinteract/OpenInteract2/t/use In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23385/t/use Modified Files: test_config.ini Added Files: included_config.ini Log Message: add functionality to bring in other INI configurations with @INCLUDE directive --- NEW FILE: included_config.ini --- [include] position = Center name = Mario name = Lemieux @,location = Pittsburgh, Pennsylvania, USA Index: test_config.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/use/test_config.ini,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_config.ini 13 Jun 2004 06:37:34 -0000 1.3 --- test_config.ini 27 Nov 2004 20:33:54 -0000 1.4 *************** *** 2,5 **** --- 2,7 ---- sub1 = val1 + @INCLUDE = included_config.ini + [head1] sub1 = val1 |
From: Chris W. <la...@us...> - 2004-11-27 19:28:32
|
Update of /cvsroot/openinteract/OpenInteract2/sample/apache In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10577 Modified Files: httpd_modperl_solo.conf Log Message: remove css/ico from types handled by Apache's default handler but add note regarding why and reason for changes Index: httpd_modperl_solo.conf =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/sample/apache/httpd_modperl_solo.conf,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** httpd_modperl_solo.conf 22 May 2004 05:28:55 -0000 1.8 --- httpd_modperl_solo.conf 27 Nov 2004 19:28:23 -0000 1.9 *************** *** 36,50 **** </Location> ! <LocationMatch "\.(jpg|gif|png|js|pdf|jar|zip|gz|css|ico)$"> ! SetHandler default-handler ! </LocationMatch> ! <Location /favicon.ico> SetHandler default-handler ! </Location> ! <Location /images> SetHandler default-handler ! </Location> ScriptAlias /cgi-bin [% website_dir %]/cgi-bin --- 36,50 ---- </Location> ! # If you want to serve them up directly (more efficient) add to the ! # regex 'css|ico', but if you move OI under a different context you'll ! # have to create a separate mapping ! <LocationMatch "\.(jpg|gif|png|js|pdf|jar|zip|gz)$"> SetHandler default-handler ! </LocationMatch> ! <LocationMatch "/images"> SetHandler default-handler ! </LocationMatch> ScriptAlias /cgi-bin [% website_dir %]/cgi-bin |
From: Chris W. <la...@us...> - 2004-11-27 19:21:14
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_page/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8790 Modified Files: main.css Log Message: align box content left Index: main.css =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_page/html/main.css,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** main.css 22 May 2004 04:06:31 -0000 1.1 --- main.css 27 Nov 2004 19:21:05 -0000 1.2 *************** *** 2,6 **** background: #eeeeee; border: 1px solid black; - color: black; text-align: left; margin: 0px 2px 2px 0px; --- 2,5 ---- *************** *** 17,19 **** --- 16,19 ---- .boxContent { margin: 0px 2px 2px 0px; + text-align: left; } \ No newline at end of file |
From: Chris W. <la...@us...> - 2004-11-27 19:11:06
|
Update of /cvsroot/openinteract/OpenInteract2/extra_packages/delicious_tags/conf In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10898/conf Modified Files: spops.ini Log Message: fix incorrect configuration key Index: spops.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/extra_packages/delicious_tags/conf/spops.ini,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** spops.ini 25 Nov 2004 03:14:04 -0000 1.4 --- spops.ini 27 Nov 2004 17:11:14 -0000 1.5 *************** *** 1,5 **** [delicious_tag] class = OpenInteract2::DeliciousTagPersist ! alias = OpenInteract2::DeliciousTag field = field_discover = yes --- 1,5 ---- [delicious_tag] class = OpenInteract2::DeliciousTagPersist ! alias_class = OpenInteract2::DeliciousTag field = field_discover = yes |
From: Chris W. <la...@us...> - 2004-11-27 19:01:09
|
Update of /cvsroot/openinteract/OpenInteract2/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3820/t Modified Files: utils.pl Log Message: add changes + package version updates for Salve's changes Index: utils.pl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/t/utils.pl,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** utils.pl 24 Oct 2004 15:04:23 -0000 1.73 --- utils.pl 27 Nov 2004 19:00:27 -0000 1.74 *************** *** 45,56 **** return ( base => '2.10', ! base_box => '2.15', base_error => '2.10', ! base_group => '2.14', ! base_page => '2.27', base_security => '2.17', ! base_template => '3.12', base_theme => '2.09', ! base_user => '2.32', comments => '1.14', full_text => '2.57', --- 45,56 ---- return ( base => '2.10', ! base_box => '2.16', base_error => '2.10', ! base_group => '2.15', ! base_page => '2.28', base_security => '2.17', ! base_template => '3.13', base_theme => '2.09', ! base_user => '2.33', comments => '1.14', full_text => '2.57', |
From: Chris W. <la...@us...> - 2004-11-27 19:01:07
|
Update of /cvsroot/openinteract/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3820 Modified Files: MANIFEST Log Message: add changes + package version updates for Salve's changes Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/MANIFEST,v retrieving revision 1.94 retrieving revision 1.95 diff -C2 -d -r1.94 -r1.95 *** MANIFEST 24 Oct 2004 15:04:23 -0000 1.94 --- MANIFEST 27 Nov 2004 19:00:26 -0000 1.95 *************** *** 158,169 **** lib/OpenInteract2/Util.pm pkg/base-2.10.zip ! pkg/base_box-2.15.zip pkg/base_error-2.10.zip ! pkg/base_group-2.14.zip ! pkg/base_page-2.27.zip pkg/base_security-2.17.zip ! pkg/base_template-3.12.zip pkg/base_theme-2.09.zip ! pkg/base_user-2.32.zip pkg/comments-1.14.zip pkg/full_text-2.57.zip --- 158,169 ---- lib/OpenInteract2/Util.pm pkg/base-2.10.zip ! pkg/base_box-2.16.zip pkg/base_error-2.10.zip ! pkg/base_group-2.15.zip ! pkg/base_page-2.28.zip pkg/base_security-2.17.zip ! pkg/base_template-3.13.zip pkg/base_theme-2.09.zip ! pkg/base_user-2.33.zip pkg/comments-1.14.zip pkg/full_text-2.57.zip |
From: Chris W. <la...@us...> - 2004-11-27 19:00:51
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_page In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3820/pkg/base_page Modified Files: Changes package.conf Log Message: add changes + package version updates for Salve's changes Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_page/Changes,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Changes 5 Oct 2004 03:21:52 -0000 1.26 --- Changes 27 Nov 2004 19:00:28 -0000 1.27 *************** *** 1,4 **** --- 1,15 ---- Revision history for OpenInteract package base_page. + 2.28 Sat Nov 27 13:53:53 EST 2004 + + From Salve Nilsen: + + - describe all the other pages (other than index.html) that are + installed with the standard demo site (in data/page.dat). + + - allow display of 'text/plain' and 'text/css' + + - add 'display' link to page form + 2.27 Mon Oct 4 23:18:59 EDT 2004 Index: package.conf =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_page/package.conf,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** package.conf 5 Oct 2004 03:21:52 -0000 1.27 --- package.conf 27 Nov 2004 19:00:28 -0000 1.28 *************** *** 1,4 **** name base_page ! version 2.27 author Chris Winters <ch...@cw...> module File::Basename --- 1,4 ---- name base_page ! version 2.28 author Chris Winters <ch...@cw...> module File::Basename |