[Jifty-commit] r5629 - in Net-Jifty/trunk: .

Jifty commits jifty-commit at lists.jifty.org
Fri Aug 1 09:41:33 EDT 2008


Author: sartak
Date: Fri Aug  1 09:41:33 2008
New Revision: 5629

Modified:
   Net-Jifty/trunk/   (props changed)
   Net-Jifty/trunk/lib/Net/Jifty.pm

Log:
 r68238 at onn:  sartak | 2008-08-01 09:41:21 -0400
 Remove classbuilder stuff, that's now in a branch


Modified: Net-Jifty/trunk/lib/Net/Jifty.pm
==============================================================================
--- Net-Jifty/trunk/lib/Net/Jifty.pm	(original)
+++ Net-Jifty/trunk/lib/Net/Jifty.pm	Fri Aug  1 09:41:33 2008
@@ -1,7 +1,6 @@
 #!/usr/bin/env perl
 package Net::Jifty;
 use Moose;
-use Net::Jifty::Record;
 
 use LWP::UserAgent;
 use HTTP::Request;
@@ -939,150 +938,6 @@
     return $user->{email};
 }
 
-=head2 create_model_class Name -> ClassName
-
-Creates a new model class for the given Name.
-
-=cut
-
-sub create_model_class {
-    my $self  = shift;
-    my $model = shift;
-
-    my $class = $self->name_model_class($model);
-
-    if ($class->can('_net_jifty_model_class_created')) {
-        return $class->meta->name;
-    }
-
-    # retrieve and massage spec from the server..
-    my $spec = $self->get_model_spec($model);
-    my ($attributes, $methods) = $self->_moosify_columns($spec);
-
-    if ($class->can('meta')) {
-        $class->meta->make_mutable;
-    }
-
-    my $meta = Moose::Meta::Class->create(
-        $class,
-        superclasses => ['Net::Jifty::Record'],
-        attributes   => $attributes,
-        methods      => {
-            %$methods,
-            _net_jifty_model_class_created => sub { 1 },
-        },
-    );
-
-    for my $attribute (@$attributes) {
-        my $name   = $attribute->name;
-        my $reader = $attribute->get_read_method;
-        my $writer = $attribute->get_write_method;
-
-        next unless $reader && $writer;
-
-        $meta->add_after_method_modifier($writer => sub {
-            my $self = shift;
-            return if @_ == 0; # read
-            $self->update($name, $self->$reader);
-        });
-    }
-
-    $meta->add_attribute('+_model_class',
-        default => $model,
-    );
-
-    $meta->make_immutable;
-
-    return $meta->name;
-}
-
-sub _moosify_columns {
-    my $self = shift;
-    my $model_spec = shift;
-    my @attributes;
-    my %methods;
-
-    for my $column (keys %$model_spec) {
-        next if $column eq 'id'; # already taken care of
-        my $spec = $model_spec->{$column};
-        my %opts;
-
-        # the key name. this may be different for refers columns
-        $opts{init_arg} = $column;
-
-        $opts{is} = $spec->{readable} && $spec->{writable} ? 'rw'
-                  : $spec->{readable}                      ? 'ro'
-                  : undef;
-        $opts{isa} = $self->_moosify_type($spec->{type});
-        delete $opts{isa} if !defined($opts{isa});
-
-        $opts{required} = $spec->{mandatory};
-
-        if ($spec->{refers_to}) {
-            my %refer_opts;
-            $spec->{by} ||= 'id';
-
-            # end up with column=owner_id and refer_name=owner
-            $column =~ s/_id$//;
-            my $refer_name = $column;
-            $column .= $spec->{by};
-
-            $refer_opts{lazy} = 1;
-            $refer_opts{isa} = $spec->{refers_to};
-            my ($refer_class, $refer_by) = ($opts{isa}, $spec->{by});
-
-            $refer_opts{default} = sub {
-                my $self  = shift;
-                my $class = $self->_interface->create_model_class($refer_class);
-
-                # get the scalar referral value (probably the numeric ID)
-                my $attr  = $self->meta->get_attribute($column);
-                my $value = $attr->get_read_method_ref->($self);
-
-                $class->load($self->_interface, $refer_by, $value);
-            };
-            push @attributes, Moose::Meta::Attribute->new($refer_name, %refer_opts);
-        }
-
-        push @attributes, Moose::Meta::Attribute->new($column, %opts);
-    }
-
-    return (\@attributes, \%methods);
-}
-
-my %types = (
-    serial => 'Int',
-);
-
-sub _moosify_type {
-    my $self = shift;
-    my $type = lc(shift);
-
-    return $types{$type} if exists $types{$type};
-
-    return 'Int'  if $type =~ /int/;
-    return 'Str'  if $type =~ /char|text/;
-    return 'Num'  if $type =~ /numeric|decimal|real|double|float/;
-    return 'Bool' if $type =~ /bool/;
-
-    Carp::carp "Unhandled type: $type";
-    return undef;
-}
-
-sub name_model_class {
-    my $self  = shift;
-    my $model = shift;
-
-    my ($last) = $model =~ /.*::(.*)/;
-    $last = $model if !$last; # no ::
-
-    if (blessed($self) eq 'Net::Jifty') {
-        return "Net::Jifty::Record::$last";
-    }
-
-    return blessed($self) . "::$last";
-}
-
 =head1 SEE ALSO
 
 L<Jifty>, L<Net::Hiveminder>


More information about the Jifty-commit mailing list