Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Toru Kawamura
![The new Text::Hatena](https://cdn-ak-scissors.b.st-hatena.com/image/square/87c7e90450c21cba6f53de217f086a2ec44c8a9b/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fnew-text-hatena-120818021605-phpapp01-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Perl 5.14.0が出ました。気になるものとして、新しい標準モジュールに入った HTTP::Tinyがあります。cpanmも使っているモジュールです。 標準モジュールで HTTPクライアントが簡単にかけると、助かる場面と いうのは多いのではないでしょうか。 perl5.14.0 Jesse Vincent / perl-5.14.0 - search.cpan.org ソース 指定した URLから jpeg, gifのリンクを抜き出すというものです。 LWPを意識していると思われ、簡単なことをやるならほぼ同じです。 getの戻り値が HTTP::Responseのようなオブジェクトではなく、 ハッシュとして返ってくるというぐらいですかね。 #!/usr/bin/env perl use strict; use warnings; use HTTP::Tiny; my $url = sh
今年もよしなにお願いいたします 連載第18回ではlocal::libの話題を取り上げましたが、今回はそのときにもちらと紹介した、モジュールをインストールするときに利用するいくつかのモジュールについて簡単にまとめてみます。 ExtUtils::MakeMakerが生まれるまで Perlがバージョン3でコンパイル時にユーザ独自のライブラリを組み込んで本体機能を拡張できるようになったとき(1990年)、おそらくもっとも喜んだのがデータベースを使っていたユーザでした。彼らはいそいそと自分の使っていたデータベースのライブラリをPerlに組み込み、それとわかる名前をつけて公開しました。当時の記録によれば、Oracleに対応したOraperlやPostgreSQLに対応したPgperlなど、データベース関連だけで8つないし9つの専用Perlがあったようです[1]。 でも、このアプローチには問題もあ
ATNDのAPIを簡単に使えるようにすることを目指したモジュールを作りました。 https://github.com/memememomo/p5-WebService-Simple-ATND yusukebeさんの「WebService::Simple」を使って実装しています。 使い方は以下の通りです。 ATNDには「イベントサーチAPI」と「出欠確認API」があります。 どちらのAPIを使うかによって、「query_events()」か「query_users()」を呼び出して、クエリビルダを作成します。 検索クエリのパラメータは「add_{パラメータ名}」メソッドで追加していき、getメソッドにクエリビルダを渡してAPIにアクセスします。 返されるレスポンスは、すでにパースされた状態になっています。検索クエリに対応するイベントは、eventメソッドで簡単に取得できるようになっています。
ExtUtils::Install, ExtUtils::Installed を使うと cpan コマンドでインストールしたモジュールについてあれやこれや調べる事が出来ます。 インストールされているモジュール一覧 perl -MExtUtils::Installed -le 'print join "\n" => sort ExtUtils::Installed->new->modules;' 特定のモジュール名が属する dist に含まれるファイル一覧 $ perl -MExtUtils::Installed -le 'print join "\n" => sort ExtUtils::Installed->new->files(shift @ARGV);' YAML::Syck /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
Perlで、インストールされているモジュールの一覧を取得するには ExtUtils::Installed を使うとよいという記事をよく見かけていたので、自分もよくそのようにしていました。 新しいPerlに今まで使ってたモジュールをまとめてインストールする - 酒日記 はてな支店 cpan コマンドでインストールしたモジュールを調べる - Yet Another Hackadelic しかし本日、perlbrewでperl-5.12.2をインストールした後、bin/ 配下に置かれるコマンドをなんとなく眺めていたところ、instmodsh というコマンドがあることに気付きました。これを使うと、 $ instmodsh Available commands are: l - List all installed modules m <module> - Select a module q - Q
Log::Minimal v0.02をリリースしました。xaicronさんのpatchにより出力するログのレベルを変更することができるようになりました。 WARN以上のログだけを出したい場合、$Log::Minimal::LOG_LEVEL を変更します。 use Log::Minimal; local $Log::Minimal::LOG_LEVEL = "WARN"; infof("info"); #出力されない warnf("warn"); #出力される デフォルトのレベルはDEBUGです。なお、デバックメッセージを出すには環境変数も設定されている必要があります。 ところで、Log::Minimalでは4つのログレベル、DEBUG、INFO、WARN、CRITICALをサポートしていますが、他のLogモジュールではより詳細なレベルを用意しているものがあります。そのため、アプリケーショ
Perlのコードを書いていると各種モジュールに分割してメソッド呼び出しをバシバシ行うと思うんですが、 package Proj::Api::User; sub new { bless {}, +shift } sub lookup { my ($self, $args) = @_; warn $args->{user_id}; } 的なコードを書くと思うのですよ。 この場合、lookupメソッドはpackage名にあるUserから連想して $argsにはuser_idが入っているというルールを決めておけば、 まぁとりあえず問題なさそうにみえますが、(結構楽なのでこうしてしまいがちなんですが) 本当にuser_idがあるかどうかチェックしたほうが本当はいいわけですね。 そこでParams::Validateというモジュールがあります。 コレを使うとこのようにかけます package P
2010年08月23日08:00 カテゴリLightweight Languages perl - Data::Decycle で悪循環を断とう! Data::Decycleというモジュールをリリースしたのでお知らせします。 /lang/perl/Data-Decycle/trunk - CodeRepos::Share - Trac dankogai's p5-data-decycle at master - GitHub Dan Kogai / Data::Decycle - search.cpan.org Perlは循環参照が苦手 有名な話ですが、Perlで循環参照を作ると、プログラムが終了するまでその分のメモリーは解放されません。 perlobj - search.cpan.org use strict; use warnings; { package Dummy; sub new
cpan-outdated という、使っている CPAN module が古くないかどうかを確認できる便利なスクリプトがありますが、その cpan-outdated さんが local::lib に対応してました。 % cpan-outdated -L extlib | cpanm -L extlibなどとやると、extlib/ 以下のふるいモジュールを一気にアップグレードできます。 まあ気がむいたらやってみるといいんじゃないでしょうか。
Perl-5.12.1 がリリースされたということで早速インストールされたかたも多いと思いますが、新しい Perl にモジュールを全部入れ直すのは面倒ですよね。 ExtUtils::Installed を使うと楽ができます。 今まで使ってる perl でインストールされているモジュールの一覧をファイルに落として、新しい perl で cpanm に食わせるだけです。 $ cpanm ExtUtils::Installed $ perl -MExtUtils::Installed -e 'print "$_\n" for ExtUtils::Installed->new->modules' > modules.txt $ perlbrew switch perl-5.12.1 $ cpanm < modules.txtあと、perlbrew でインストールした直後は cpanm も perl
xaicron's pm-uninstall at master - GitHub 今までも、CPAN モジュールをアンインストールするために、 ExtUtils::Install と ExtUtils::Installed を使った、以下のようなエイリアスを書いて使っていたのですが、 alias cpan-uninstall='perl -MExtUtils::Install -MExtUtils::Installed -e "unshift@ARGV,new ExtUtils::Installed;sub a{\@ARGV};uninstall((eval{a->[0]->packlist(a->[1])}||do{require CPAN;a->[0]->packlist(CPAN::Shell->expandany(a->[1])->distribution->base_id=~m
前回までのあらすじ ようやくlocal::lib童貞を捨てた - すぎゃーんメモから1.5ヶ月ほど経過。 やはりプロジェクト毎にモジュールのバージョンを揃えておきたくて、各プロジェクト用にモジュールをインストールしている。 アカウント作成して切り替え、という方法は早々に見切りをつけ、最近は #!/bin/sh export MODULEBUILDRC="/Users/sugyan/local/.modulebuildrc" export PERL_MM_OPT="INSTALL_BASE=/Users/sugyan/local" export PERL5LIB="/Users/sugyan/local/lib/perl5:/Users/sugyan/local/lib/perl5/darwin-thread-multi-2level:$PERL5LIB" export PATH="/Use
このドメインを購入する。 hanekomu.at 2018 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy
計画的に実行するのはよいことですが 前回も紹介したように、Test Anything Protocolでは「これから10個のテストを実行します」と宣言する場合はこのように書くことになっていました。 use strict; print "1..10\n"; # 宣言部 for (1..10) { print "ok $_\n"; } このような宣言部の存在は、テスト結果をパースして分析するTest::Harnessのようなツールにとっては非常に便利なものですが、たとえば環境によってテストの数がかわるとき、あるいはテストファイルが非常に長くなってきたとき、はたまた多くの人が平行してファイルやテストの追加作業をしているため最後にマージするまでテストの数がわからないとき、事前にテストの数を把握していなければならないというのは、大きな制約にもなりえます。 単純そうに見えるTest Anything
Test Anything Protocol Perlは非常にテストを重視している言語です。連載第14回ではPerl本体のテスト数がどのように推移してきたかを、また連載第24回ではCPANモジュールの品質保証に大きな役割を果たしてきたCPANTSについて簡単に紹介しましたが、Perlとテストのつながりはそれだけではありません。CPANにはTestを名前に含むディストリビューションが500以上もあがっていますし(これは全ディストリビューション数の約2.5%にあたります)、Perlで標準的に使われているテスト形式はTest Anything Protocol (TAP)という名前を得て多くの言語に移植され、2008年からはIETFの標準化を目指した活動も始まっています――というと何やらすごいプロトコルのように聞こえるかもしれませんが、Test Anything Protocolというのは要
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く