Changeset 15 in bookmarks for trunk/Bookmarks.pm
- Timestamp:
- 02/09/13 21:02:43 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Bookmarks.pm
r13 r15 1 1 package Bookmarks; 2 2 3 use Class::Accessor 'antlers';3 use Moose; 4 4 use SQL::Interp qw{:all}; 5 5 use Bookmark; 6 6 7 has dbh => ( is => 'r o' );7 has dbh => ( is => 'rw' ); 8 8 has base_uri => ( is => 'ro' ); 9 10 sub BUILD { 11 my $self = shift; 12 my $args = shift; 13 14 if (!$self->dbh) { 15 if ($args->{dbname}) { 16 require DBI; 17 $self->dbh(DBI->connect("dbi:SQLite:dbname=$$args{dbname}", "", "", { RaiseError => 1, PrintError => 0 })); 18 # enable foreign key support (requires DBD::SQLite 1.26_05 or above (sqlite 3.6.19 or above)) 19 $self->dbh->do('pragma foreign_keys = on;'); 20 } else { 21 #TODO: figure out how to make croak play nice with Moose to get the user-visible caller line 22 die "No dbh or dbname specified in the constructor"; 23 } 24 } 25 } 9 26 10 27 sub get_bookmark { … … 91 108 my $title = $bookmark->{title}; 92 109 #TODO: accept a ctime or mtime 93 my $mtime = my $ctime = $bookmark->{ctime} || time; 110 my $ctime = $bookmark->{ctime} || time; 111 my $mtime = $bookmark->{mtime} || $ctime; 112 my $id = $bookmark->{id}; 94 113 95 114 # create an entry for the resource … … 110 129 111 130 # create the bookmark 112 my $sth_bookmark = $self->dbh->prepare('insert into bookmarks (uri, ctime, mtime) values (?, ?, ?)'); 131 my ($sql_bookmark, @bind_bookmark) = sql_interp( 132 'insert into bookmarks', { ($id ? (id => $id) : ()), uri => $uri, ctime => $ctime, mtime => $mtime } 133 ); 134 my $sth_bookmark = $self->dbh->prepare($sql_bookmark); 113 135 eval { 114 $sth_bookmark->execute( $uri, $ctime, $mtime);136 $sth_bookmark->execute(@bind_bookmark); 115 137 }; 116 138 if ($@) {
Note: See TracChangeset
for help on using the changeset viewer.