タグ

2013年8月20日のブックマーク (4件)

  • 複雑なデータ構造の中にうまっているデータのパスをさがす方法 - tokuhirom's blog

    Perl5 の場合、Data::DPath をつかえば、 my $data = { foo => { bar => 'candy', }, }; のようなデータから、 say dpath('/foo/bar')->match($hashref); などとして、candy を簡単にとりだすことができます。 しかし、ここで、たとえば以下のように複雑なデータになってしまった場合は、DPath をつくるのがまじめんどいかんじになります。 my $data = { foo => { bar => 'candy', boz => 3, iyan => { bakan => 7, yappo => 'candy', dan => [ 'suspender', 'hige', 'candy'] }, }, }; そんな場合、以下のようなコードをささっと書いてcandyをさがしましょう。 #!/usr/bi

    kwry
    kwry 2013/08/20
  • Test::Time と日付系モジュールを同時に使う際の注意 - その手の平は尻もつかめるさ

    cho45 さんが作られた Test::Time と日付系モジュール (DateTime や Time::Piece など) と同時に使用する場合には注意が必要です。 Test::Time の動作を補足的に解説しますと、このモジュールは sleep() と time() を上書きしています。 sleep() が呼ばれると、来ならば引数として与えられた秒数だけスリープしますが、 Test::Time を use しているとスリープされません (つまり即座にsleep() は処理を終える)。 その代わりに、引数として sleep() に与えられていた秒数を time() によって得られる秒数に加えるという動作を行います。 ...日語で説明するのがなんだか難しいので、参考コードを掲示します。 こんな感じです。おわかり頂けるでしょうか。 で。 例えば以下の様なコードは期待通りに動作しません。

    Test::Time と日付系モジュールを同時に使う際の注意 - その手の平は尻もつかめるさ
    kwry
    kwry 2013/08/20
  • データベースのテスト - パルカワ2

    ふわっとしたタイトル通り、中身はありません。 use strict; use warnings; use Test::More; subtest "A" => sub { # DBを扱ったテスト }; subtest "B" => sub { # DBを扱ったテスト }; done_testing; こういう感じで書いちゃうと、subtest "B"のテストコードが、subtest "A"に依存するとかよくしちゃう。 そういう事をするとsubtest "A"がいらなくなったから削除するとsubtest "B"がエラー吐くみたいなのが、とてもつらい。 「こういう事起きないように気をつけよう!」みたいなの、ずっと1人だったらそれでいいんだけど、チームで開発してるといつの間にか気をつけよう!は忘れ去られてる事が多い。 だから以下のようにapptestみたいな名前のやつをt::Utilに作って、そ

    データベースのテスト - パルカワ2
    kwry
    kwry 2013/08/20
  • uupaa's pure JavaScript module pattern - latest log

    2013-08-19 uupaa's pure JavaScript module pattern pure JavaScript で記述し、Browser, WebWorker, Node.js で使えるモジュール定義パターンのご紹介。 uupaa 2013-08-19 18:05 前の記事

    kwry
    kwry 2013/08/20