nekokak's Journal
http://use.perl.org/~nekokak/journal/
nekokak's use Perl Journal
en-us
use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.
2012-01-25T02:43:50+00:00
pudge
pudge@perl.org
Technology
hourly
1
1970-01-01T00:00+00:00
nekokak's Journal
http://use.perl.org/images/topics/useperl.gif
http://use.perl.org/~nekokak/journal/
-
Sledge::Model(EXPERIMENTAL)
http://use.perl.org/~nekokak/journal/31485?from=rss
<p>I wrote Sledge::Model.</p><p>This module is EXPERIMENTAL!</p><blockquote><div><p> <tt>package Sledge::Model;<br>use strict;<br>use warnings;<br>our $VERSION = 0.01;<br>use Sledge::Exceptions;<br>
<br>sub new {<br> my ($class, $page) = @_;<br> return bless {page => $page}, $class;<br>}<br>
<br>1;<br>
<br>package Sledge::Model::CDBI;<br>use strict;<br>use warnings;<br>use base 'Sledge::Model';<br>use UNIVERSAL::require;<br>
<br>sub get {<br> my ($self, $name) = @_;<br> my $cdbi = $self->_get_class;<br> my $cdbi_class = "$cdbi\::$name";<br> $cdbi_class->use or die $@;<br> return $cdbi_class;<br>}<br>
<br>sub _get_class { shift->{page}->config->{cdbi_class} }<br>
<br>1;<br>
<br>package Sledge::Model::DBIC::Schema;<br>use strict;<br>use base qw/Sledge::Model/;<br>use UNIVERSAL::require;<br>our $VERSION = '0.01';<br>
<br>sub new {<br> my $class = shift;<br> my $self = $class->SUPER::new(@_);<br> $self->connect;<br>}<br>
<br>sub connect {<br> my $self = shift;<br> my $schema_class = $self->{page}->config->{schema_class};<br> $schema_class->use or die $@;<br> return $schema_class->connect($self->{page}->config->datasource);<br>}<br>
<br>1;<br>
<br>package Sledge::Plugin::Model;<br>use strict;<br>use warnings;<br>our $VERSION = '0.01';<br>use Sledge::Exceptions;<br>
<br>sub import {<br> my $self = shift;<br> my $pkg = caller;<br>
<br> $pkg->mk_accessors('model');<br> $pkg->add_trigger(AFTER_INIT => sub {<br> my $self = shift;<br> $self->model($self->create_model);<br> });<br>
<br> {<br> no strict 'refs'; ## no critic<br> *{"$pkg\::create_model"} = sub {<br> Sledge::Exception::AbstractMethod->throw<br> };<br> }<br>}<br>
<br>1;</tt></p></div> </blockquote><p>For CDBI.<br>in your config.yaml:</p><blockquote><div><p> <tt> cdbi_class: Proj::Data<br> datasource:<br> - dbi:mysql:proj<br> - user<br> - passwd</tt></p></div> </blockquote><p>in your controller:</p><blockquote><div><p> <tt> sub create_model { Sledge::Model::CDBI->new(shift) }<br>
<br> sub dispatch_index {<br> my $self = shift;<br> my $memo = $self->model->get('Memo')->retrieve_all;<br> }</tt></p></div> </blockquote><p>For DBIC::Schema.<br>in your config.yaml:</p><blockquote><div><p> <tt> schema_class: Proj::Schema<br> datasource:<br> - dbi:mysql:proj<br> - user<br> - passwd</tt></p></div> </blockquote><p>in your controller:</p><blockquote><div><p> <tt> sub create_model { Sledge::Model::DBIC::Schema->new(shift) }<br>
<br> sub dispatch_index {<br> my $self = shift;<br> my $memo = $self->model->resultset('Hoge')->search({});<br> }</tt></p></div> </blockquote>
nekokak
2006-11-02T07:25:24+00:00
useperl
-
DBIx::Class::Schema for Sledge.
http://use.perl.org/~nekokak/journal/31473?from=rss
<p>I will do MoFedge::Data::DBIC::Schema and do the porting to Sledge::Model.</p><p>MoFedge::Data::DBIC::Schema is here.<br><a href="http://code.mfac.jp/trac/browser/MoFedge-Data-DBIC-Schema/">http://code.mfac.jp/trac/browser/MoFedge-Data-DBIC-Schema/</a></p><p>By the way, MoFedge is a rapper of Sledge used my working.</p><p>Sledge is cool Web Application Framework.<br>But,it becomes old for a moment.<br>I want to help to improve it even a little.</p><p>See:<br>Ikebe-san.<a href="http://use.perl.org/~ikebe/journal/">http://use.perl.org/~ikebe/journal/</a><br>and<br>Tokuhirom-san.<a href="http://use.perl.org/~tokuhirom/journal/">http://use.perl.org/~tokuhirom/journal/</a></p>
nekokak
2006-11-01T15:42:49+00:00
useperl
-
list grep
http://use.perl.org/~nekokak/journal/31466?from=rss
<p>I want to extract only the value that exists in another array by the value of a certain array.<br>It cannot be done in List::MoreUtils.<br>And I wrote such.</p><blockquote><div><p> <tt>package List::Grep;<br>use strict;<br>use warnings;<br>use base 'Exporter';<br>use vars qw(@EXPORT_OK %EXPORT_TAGS);<br>@EXPORT_OK = qw/list_grep/;<br>
<br>sub list_grep {<br> my $args = shift;<br> my %tmp;<br> @tmp{@{$args->{base}}} = @{$args->{base}};<br> return wantarray ? @tmp{@{$args->{grep_key}}} : [@tmp{@{$args->{grep_key}}}];<br>}<br>
<br>1;<br>__END__<br>
<br>=head1 SYNOPSIS<br>
<br> use List::Grep qw/list_grep/;<br> my @hoge = qw/1 2 3 4 5 5/;<br> my @moge = qw/2 5/;<br>
<br> my @result = list_grep({base => \@hoge,grep_key => \@moge});<br>
<br> ## 2,5 in @result<br>
<br>=head1 THANKS TO<br>
<br>tokuhirom</tt></p></div> </blockquote><p>more idea?</p><p>PS.</p><p>http://rafb.net/paste/results/UdqEr958.html<br>Thanks to hio_d and #catalyst-ja's member.</p>
nekokak
2006-11-01T09:21:11+00:00
useperl
-
I wrote DBIx::Class::AsFdat
http://use.perl.org/~nekokak/journal/31465?from=rss
<p>I wrote DBIx::Class::AsFdat.</p><p>DBIx::Class::AsFdat like Class::DBI::Plugin::AsFdat.</p><blockquote><div><p> <tt>package DBIx::Class::AsFdat;<br>use strict;<br>use warnings;<br>use base 'DBIx::Class';<br>use Scalar::Util qw/blessed/;<br>
<br>our $VERSION = 0.01;<br>
<br>sub as_fdat {<br> my $self = shift;<br>
<br> my $fdat;<br> for my $column ($self->result_source->columns) {<br> $fdat->{$column} = $self->$column;<br>
<br> # inflate the datetime<br> if (blessed $fdat->{$column} and $fdat->{$column}->isa('DateTime')) {<br> for my $type (qw(year month day hour minute second)) {<br> $fdat->{"${column}_$type"} = $fdat->{$column}->$type;<br> }<br> }<br> }<br> return $fdat;<br>}<br>
<br>1;<br>
<br>__END__<br>
<br>=head1 SYNOPSIS<br>
<br> __PACKAGE__->load_components(qw/<br> AsFdat<br> <nobr> <wbr></nobr>/);<br>
<br> my $ad = $self->model('Ad')->search(rid => $self->r->param('ad_rid'))->first;<br> $self->fillin_form->fdat($ad->as_fdat);</tt></p></div> </blockquote><p>HTML::FillInForm and compatibility are good.<br>It is indispensable in Web Application.<br>enjoy!!</p><p>PS.<br>However, this module is not released to CPAN.</p>
nekokak
2006-11-01T07:01:55+00:00
useperl