[Jifty-commit] r2704 - in jifty/branches/virtual-models: .
lib/Jifty lib/Jifty/Model
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Mon Jan 29 03:40:09 EST 2007
Author: jesse
Date: Mon Jan 29 03:40:09 2007
New Revision: 2704
Added:
jifty/branches/virtual-models/lib/Jifty/Model/MetadataCollection.pm
jifty/branches/virtual-models/lib/Jifty/Script/Database.pm (contents, props changed)
Modified:
jifty/branches/virtual-models/ (props changed)
jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm
jifty/branches/virtual-models/lib/Jifty/Collection.pm
Log:
r21652 at hualien: jesse | 2007-01-29 16:39:50 +0800
*checkpoint
Modified: jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm
==============================================================================
--- jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm (original)
+++ jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm Mon Jan 29 03:40:09 2007
@@ -215,9 +215,9 @@
except => qr/\.#/,
inner => 0
);
+ # That plugins is module::pluggable, not jdbi
$models{$_} = 1 for grep {/^($base)::Model::(.*)$/ and not /Collection$/} $self->plugins;
- $self->models(sort keys %models);
- for my $full ($self->models) {
+ for my $full (sort keys %models) {
$self->_require_model_related_classes($full);
}
@@ -226,6 +226,8 @@
sub _require_model_related_classes {
my $self = shift;
my $full = shift;
+ push (@{$self->models}, $full);
+
my $base = $self->{base};
my($short) = $full =~ /::Model::(.*)/;
Jifty::Util->require($full . "Collection");
@@ -275,10 +277,11 @@
sub models {
my $self = shift;
+ $self->{models} ||= [];
if (@_) {
$self->{models} = ref($_[0]) ? $_[0] : \@_;
}
- wantarray ? @{ $self->{models} ||= [] } : $self->{models};
+ wantarray ? @{ $self->{models} } : $self->{models};
}
Modified: jifty/branches/virtual-models/lib/Jifty/Collection.pm
==============================================================================
--- jifty/branches/virtual-models/lib/Jifty/Collection.pm (original)
+++ jifty/branches/virtual-models/lib/Jifty/Collection.pm Mon Jan 29 03:40:09 2007
@@ -115,6 +115,7 @@
my $class =$self->record_class();
# We do this as a performance optimization, so we don't need to do the stackwalking to find it
+ Jifty::Util->require($class);
return $class->new(current_user => $self->current_user);
}
Added: jifty/branches/virtual-models/lib/Jifty/Model/MetadataCollection.pm
==============================================================================
--- (empty file)
+++ jifty/branches/virtual-models/lib/Jifty/Model/MetadataCollection.pm Mon Jan 29 03:40:09 2007
@@ -0,0 +1,16 @@
+use warnings;
+use strict;
+
+package Jifty::Model::MetadataCollection;
+
+use base qw/Jifty::Collection/;
+
+=head2 record_class
+
+This deals with collections of L<Jifty::Model::Metadata>s.
+
+=cut
+
+sub record_class { 'Jifty::Model::Metadata' }
+
+1;
Added: jifty/branches/virtual-models/lib/Jifty/Script/Database.pm
==============================================================================
--- (empty file)
+++ jifty/branches/virtual-models/lib/Jifty/Script/Database.pm Mon Jan 29 03:40:09 2007
@@ -0,0 +1,64 @@
+use warnings;
+use strict;
+
+package Jifty::Script::Database;
+use base qw/App::CLI::Command/;
+
+
+use File::Path ();
+
+
+=head1 NAME
+
+Jifty::Script::Database
+
+=head1 DESCRIPTION
+
+When you're getting started with Jifty, this is the server you
+want. It's lightweight and easy to work with.
+
+=head1 API
+
+=head2 options
+
+
+=cut
+
+sub options {
+ (
+ 'dump' => 'dump',
+ )
+}
+
+=head2 run
+
+
+=cut
+
+sub run {
+ my $self = shift;
+ Jifty->new();
+ my %content = {};
+ foreach my $model (Jifty->class_loader->models, qw(Jifty::Model::Metadata Jifty::Model::ModelClass Jifty::Model::ModelClassColumn)) {
+ next unless $model->isa('Jifty::Record');
+ my $collection = $model."Collection";
+ Jifty::Util->require($collection);
+ my $records = $collection->new;
+ $records->unlimit();
+
+ foreach my $item(@{$records->items_array_ref}) {
+ my $ds = {};
+ for ($item->columns) {
+ next if $_->virtual;
+ $ds->{$_->name} = $item->__value($_->name);
+ }
+ $content{$model}->{$item->id} = $ds;
+ }
+
+
+ }
+ print Jifty::YAML::Dump(\%content)."\n";
+
+}
+
+1;
More information about the Jifty-commit
mailing list