と思わせてまだ会社。

by typester / at 2006-03-02T02:08:00 / life / Comment

退社。

by typester / at 2006-03-02T00:52:00 / life / Comment

お、packages.debian.org 復活してるー。ナイス。

by typester / at 2006-03-01T18:27:00 / life / Comment

出社。

by typester / at 2006-03-01T11:38:00 / life / Comment

退社。

by typester / at 2006-03-01T03:54:00 / life / Comment

CPANPLUS

Hatena::Diary::Neko::kak 500 Internal Server Error - Plaggerはいらない!

CPANPLUS.pmで入れようとしたら設定がまずいのか

タイムアウトしたりなんだかんだで入らない!!

これ多分設定悪いんじゃねーかなぁ。一番最初に試したときになんかそうなってぜんぜんうまくうごかねーCPANPLUSうんこ!とかなった記憶。

とりあえず最近新しいPCにCPANPLUS入れたのでそのときの作業を思い出しつつ書いておいて見る。

  1. $ sudo cpan
  2. cpan> install Bundle::CPANPLUS
  3. ここではてけとうに設定
  4. cpan シェル終了
  5. $ chown -R typester:typester ~/.cpanplus
  6. $ export PERL5_CPANPLUS_CONFIG=$HOME/.cpanplus/config とrcスクリプトにそれ追加
  7. $ cpanp
  8. CPAN Terminal> s reconfigure で再設定。ここでちゃんと設定する

設定時の注意は設定ファイルを ~/.cpanplus/config になるようにするのとインストール時に sudo を使うようにするくらい。

あと Storeble を有効にすると環境によってはすげー遅くなる場合があるかもしれないのでその場合は切る。

by typester / at 2006-03-01T00:50:00 / perl / Comment

Plagger::Plugin::Store::DBIC #2

DB Schema 外部におく必要ねーよなー、よく考えたらw

DBIx::Class::Schema のメリットは Plugin::Store::DBIC::Schema::SQLite とかで作って、それを外部から普通に使えるっていうことで、反対だよ。

by typester / at 2006-02-28T18:06:00 / plagger / Comment

どこにおこうか迷って、svk のローカルreposのみで作業していた plaggerer(何 をとりあえず僕のpublic reposにマージ。

Plagger::Plugin::Store::DBIC から使っている Schema を公開したかったので。

svk はこういうのが簡単に出来るから素敵ですねー。

昨日書いた Plugin::Store::DBIC の schema_class で指定しているクラスがこれで、その階層以下にテーブル定義があります。

sql はこんな感じ

by typester / at 2006-02-28T12:37:00 / life · plagger / Comment

出社。

by typester / at 2006-02-28T11:07:00 / life / Comment

Plagger::Plugin::Store::DBIC

作ってみたけどびみょーー。Schema をこっちの指定通りに作ってないとだめなんだよな。せっかく外部におけるのに。

package Plagger::Plugin::Store::DBIC;
use strict;
use warnings;
use base qw/Plagger::Plugin Class::Accessor::Fast/;

use UNIVERSAL::require;

our $VERSION = '0.01';

__PACKAGE__->mk_accessors(qw/schema/);

sub register {
    my ( $self, $c ) = @_;

    unless ( $self->conf->{schema_class} and $self->conf->{connect_info} ) {
        $c->error('schema_class and connect_info are required');
    }

    $self->conf->{schema_class}->require
        or $c->error(
        qq/Can't load schema class "@{[ $self->conf->{schema_class} ]}", $!/);

    $self->schema( $self->conf->{schema_class}
            ->connect( @{ $self->conf->{connect_info} } ) );

    $c->register_hook( $self, 'publish.feed' => \&store, );
}

sub store {
    my ( $self, $c, $args ) = @_;

    # feed
    my $feed = $self->schema->resultset('Feed')
        ->find_or_new(
        { link => $args->{feed}->link, type => $args->{feed}->type } );

    $feed->$_( $args->{feed}->$_ )
        for (qw/url image description language author updated/);

    $feed->insert_or_update;

    # feed meta
    $feed->meta->delete_all;
    for my $k ( keys %{ $args->{feed}->meta } ) {
        $feed->add_to_meta( { key => $k, value => $args->{feed}->meta->{$k}, } );
    }

    # entry
    for my $feed_entry ( @{ $args->{feed}->entries } ) {
        my $entry = $self->schema->resultset('Entry')->find_or_new(
            {   feed => $feed->id,
                link => $feed_entry->link,
            }
        );
        $entry->$_( $feed_entry->$_ )
            for qw/title author date summary body rate icon/;
        $entry->insert_or_update;

        # meta
        $entry->meta->delete_all;
        for my $k ( keys %{ $feed_entry->meta } ) {
            $entry->add_to_meta( { key => $k, value => $feed_entry->meta->{$k}, } );
        }

        # tag
        $entry->tag_mappings->delete_all;
        for my $entry_tag ( @{ $feed_entry->tags } ) {
            my $tag = $self->schema->resultset('Tag')
                ->find_or_create( { name => $entry_tag } );
            $entry->add_to_tag_mappings(
                { entry => $entry->id, tag => $tag->id } );
        }
    }
}

1;

config.yaml は

 - module: Store::DBIC
   config:
     schema_class: 'Plaggerer::Schema'
     connect_info: [ 'dbi:SQLite:/home/murase/plaggerer/db/plaggerer.db' ]

Schema ファイルを置く場所もまた問題。

この場合はPlugin指定のSchemaしか扱えないから普通にこのプラグイン以下に置けばいいのかも知れんけどなぁ。

by typester / at 2006-02-27T23:35:00 / perl · plagger / Comment

127 128 129 130 131 132 133 134 135 136

(Page 131 of 203)