
=pod

=head1 NAME

DBIx::Cookbook::Recipe::Searching::fetch_all - recipe to fetch all records

=head1 DESCRIPTION

Select all records from the C<actor> table, with the option to order by a column.

Sample Usage:

  ${orm}_cmd fetch_all --order_by last_name     # orm = dbic, rdbo, skinny, etc

=head1 RECIPES

=head2 DBIx::Class

    package DBIx::Cookbook::DBIC::Command::fetch_all;
    use Moose;
    extends qw(MooseX::App::Cmd::Command);
    
    has order_by => (
    		 traits => [qw(Getopt)],
    		 isa => "Str",
    		 is  => "rw",
    		);
    
    
    sub execute {
      my ($self, $opt, $args) = @_;
    
      my $where = {};
      my $attr = {};
    
      if (my $val = $opt->{order_by}) {
        $attr->{order_by} = $val;
      }
    
      my $rs = $self->app->schema->resultset('Actor')->search($where, $attr);
    
      while (my $row = $rs->next) {
        use Data::Dumper;
        my %data = $row->get_columns;
        warn Dumper(\%data);
        
      }
    }
    
    1;


=head2 Rose::DB::Object

    package DBIx::Cookbook::RDBO::Command::fetch_all;
    use Moose;
    extends qw(MooseX::App::Cmd::Command);
    
    has order_by => (
    		 traits => [qw(Getopt)],
    		 isa => "Str",
    		 is  => "rw",
    		);
    
    
    sub execute {
      my ($self, $opt, $args) = @_;
    
      my @attr = $opt->{order_by} ? (sort_by => $opt->{order_by} ) : () ;
    
      use Sakila::Actor::Manager;
    
    
      my $result = Sakila::Actor::Manager->get_actor_iterator(@attr);
    
      while (my $row = $result->next) {
        use Data::Dumper;
        warn Dumper($row->as_tree);
      }
    }
    
    1;
    
    # Another way to get all rows:
    # my $result = Sakila::Actor::Manager->get_actor;


=head2 DBIx::Skinny

    package DBIx::Cookbook::Skinny::Command::fetch_all;
    use Moose;
    extends qw(MooseX::App::Cmd::Command);
    
    has order_by => (
    		 traits => [qw(Getopt)],
    		 isa => "Str",
    		 is  => "rw",
    		);
    
    
    sub execute {
      my ($self, $opt, $args) = @_;
    
      my @attr = $opt->{order_by} ? (sort_by => $opt->{order_by} ) : () ;
    
      use Sakila;
      my $result = Sakila->search(actor => $opt);
    
      while (my $row = $result->next) {
        use Data::Dumper;
        warn Dumper($row->{row_data});
      }
    }
    
    1;
    
    # Another way to get all rows:
    # my @rows = Sakila->search...


