File Coverage

blib/lib/Otogiri/Plugin/SelectWithColumns.pm
Criterion Covered Total %
statement 17 17 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod 0 1 0.0
total 23 24 95.8


line stmt bran cond sub pod time code
1             package Otogiri::Plugin::SelectWithColumns;
2 2     2   16121 use 5.008001;
  2         9  
3 2     2   10 use strict;
  2         6  
  2         40  
4 2     2   10 use warnings;
  2         4  
  2         102  
5              
6             our $VERSION = "0.01";
7              
8 2     2   484 use Otogiri;
  2         48573  
  2         234  
9 2     2   463 use Otogiri::Plugin;
  2         586  
  2         260  
10              
11             our @EXPORT = qw(select_with_columns search_with_columns);
12              
13             sub select_with_columns {
14 2     2 0 5248 my ($self, $table, $columns, $param, @opts) = @_;
15 2         7 my ($sql, @binds) = $self->maker->select($table, $columns, $param, @opts);
16 2         1001 $self->search_by_sql($sql, \@binds, $table);
17             }
18              
19             *search_with_columns = *select_with_columns;
20              
21             1;
22             __END__
23              
24             =encoding utf-8
25              
26             =head1 NAME
27              
28             Otogiri::Plugin::SelectWithColumns - Otogiri plugin to search row-data that contains only specific columns from database
29              
30             =head1 SYNOPSIS
31              
32             use Otogiri;
33             use Otogiri::Plugin;
34             my $db = Otogiri->new(connect_info => [...]);
35             $db->load_plugin('SelectWithColumns');
36            
37             ## SELECT `id`, `name` FROM `some_table` WHERE `author`="ytnobody" ORDER BY id ASC
38             my @rows = $db->select_with_columns(
39             'some_table',
40             ['id', 'name'],
41             {'author' => 'ytnobody'},
42             {order_by => 'id ASC'}
43             );
44            
45             my $row = $rows[0];
46             print join(", ", keys($row)) . "\n"; ## --> "id, name\n"
47              
48              
49             =head1 DESCRIPTION
50              
51             Otogiri::Plugin::SelectWithColumns is plugin for L<Otogiri> to search row-data that contains only specific columns from database。
52              
53             =head1 LICENSE
54              
55             Copyright (C) Satoshi Azuma.
56              
57             This library is free software; you can redistribute it and/or modify
58             it under the same terms as Perl itself.
59              
60             =head1 AUTHOR
61              
62             Satoshi Azuma E<lt>ytnobody@gmail.comE<gt>
63              
64             =cut
65