Test::Mojoでuser agentの変更で失敗したこと。

Test::MojoのSYNOPSISに

my $ua = $t->ua;
$t = $t->ua(Mojo::UserAgent->new);

と書いてあったので、

「$t->uaにMojo::UserAgentいれればいいんだなー?」とか思って。

my $t = Test::Mojo->new("MyApp");
my $ua = Mojo::UserAgent->new;
$ua->name("Mozilla/5.0 (Linux;....");
$t->ua($ua)
$t->get_ok("/")->status_is("200");

とかしたんだけれど、これは駄目だった。
MyAppからとってきた時に、ua自体にいろいろデータをいれられていたので、
それを置き換える形になってしまいNG。

$t->uaは、デフォルトでMojo::UserAgentとのことで。

my $t = Test::Mojo->new("MyApp");
$t->ua->name("Mozilla/5.0 (Linux;....");
$t->get_ok("/")->status_is("200");

としたら期待通りだった。
ミスったミスった。

gitlabのmerge requestを受けてどう反映したらいいか分からなかった。

GHEってお高いんでしょう?
だので、gitlabを使っております。
そして、たぶん3系です。ちょっと古いです。

で、gitlabにはmerge requestって、gitの機能で言うpull requestがあるのです。

で、昨日これを初めて投げつけられたんだけれど、
どこでどうやったら反映(merge)できるのか分からなかったんです。

で、結果としては「enable_automerge」をしろということらしいですが。

$ bundle exec rake gitlab:app:enable_automerge RAILS_ENV=production

こんなの。

けれど、権限ないしなぁー的なので。

試しに、通常通りfetchしてmergeしてpushしてみた。

そうしたら、merge requestがclosedされていたので、automergeが出来ない時はこれでいいのかな?

  • 宿題

merge requestされたときにメールで連絡が来るんだけれど、
statusとかコマンドラインでmerge requestされていることを知る方法はないのだろうか。

ガンダムユニコーン10巻読み終わった!!ネタバレ無いよ。

10巻の発売が2009年。
だから4年間寝かしておいた。(今日初めて読了したのです!)
この物語が終わってしまうのが怖くてね。

結末のネタバレがありそうなものは拒否し続けてましたよ。
けれどね、来年の春にアニメの最終話となっては、その前に読んで置かなければと。

読みながらこんなこと考えてた。

『赤の肖像』の時に、福井さんに運良くお会いできて握手させていただいたのですが、
その時の記憶を思い出しながら「なんて素晴らしい作品を世に出してくれたことか!!」

さて、アニメの方はどんな結末になるのかな。

また、これを話の種にどんなお酒が飲めるのかな。

これからも楽しみだ!!

Time::Pieceの中身とテストで困った話

Time::Pieceの中身の紹介。

bless( [0,0,23,1,6,113,1,181,0,undef,1], 'Time::Piece' )

blessされた配列が入ってる。
配列の意味は

use constant 'c_sec' => 0;
use constant 'c_min' => 1;
use constant 'c_hour' => 2;
use constant 'c_mday' => 3;
use constant 'c_mon' => 4;
use constant 'c_year' => 5;
use constant 'c_wday' => 6;
use constant 'c_yday' => 7;
use constant 'c_isdst' => 8;
use constant 'c_epoch' => 9;
use constant 'c_islocal' => 10;

こんな感じ。

説明はいいよね?

で、困った話。

is_deeply($expected_time_piece,$got_time_piece);

とかして、同じ時間なのにコケる時があった。

エラー見たら。
以下な感じ。

bless( [0,0,23,1,6,113,1,181,0,undef,1], 'Time::Piece' )
bless( [0,0,23,1,6,113,1,181,0,1372687200,1], 'Time::Piece' )

片方にepochの値の所が入っていたんですね。

ちなみに、undefのモノは、timepieceのインスタンスを作成した直後の物で、
epochが入っている方は、なんかいろいろ処理した後のもの。

そこで、time_pieceのソース見たら。

sub epoch {
    my $time = shift;
    if (defined($time->[c_epoch])) {
        return $time->[c_epoch];
    }
    else {
        my $epoch = $time->[c_islocal] ?
          timelocal(@{$time}[c_sec .. c_mon], $time->[c_year]+1900)
          :
          timegm(@{$time}[c_sec .. c_mon], $time->[c_year]+1900);
        $time->[c_epoch] = $epoch;
        return $epoch;
    } 
}

という感じで、epochを使ったあとだと値が入るようだ。

なので、undefが入っている方のインスタンスをepochしてからexpectedとして
テストしたら通ったというお話。

Time::Band.pm書いてます。

rozary/p5-Time-Band · GitHub

いろいろ機能を追加して、バグも直しながらやってます。

時間"帯"の加減が出来ます。

って作りかけのものをPushしたので。


アップ間に合った!!
Time band

あ、まだ、作成中なので、テストはこけこけになると思います!!!

Perlにゅうが…ちがかったLT損!!

やっぱいいよYAPC!!!

Perlだけ書いて生きていきたいので、そこんとこヨロシク!!!!

ってブログ書いてるわけだけれど。

"ブログ書くまでがYAPC!!"ならボクのPerlは終わってしまうのか!!!!

つか、和みすぎwww。