原因は URI::Find が2009/03/19にアップデートされたらしい。
それを使うと Catalyst::Plugin::Session::State::URI をいれようとすると下記のようなエラーがでる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| PERL_DL_NONLAZY=1 /opt/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/01use.t t/02pod.t t/03podcoverage.t t/basic.t t/live_rewrite.t t/live_uri_for.t t/param.t
t/01use.t .......... ok
t/02pod.t .......... skipped: set TEST_POD to enable this test
t/03podcoverage.t .. skipped: set TEST_POD to enable this test
t/basic.t .......... 1/51
# Failed test 'external URL stays untouched'
# at t/basic.t line 131.
# got: 'foo <ahref="http://www.woobling.org/"></a> blah'
# expected: 'foo <a href="http://www.woobling.org/"></a> blah'
t/basic.t .......... 31/51 # Looks like you failed 1 test of 51.
t/basic.t .......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/51 subtests
t/live_rewrite.t ... ok
t/live_uri_for.t ... ok
t/param.t .......... 1/28
# Failed test 'external URL stays untouched'
# at t/param.t line 100.
# got: 'foo <ahref=%22http://www.woobling.org/?sid=qux"></a> blah'
# expected: 'foo <a href="http://www.woobling.org/"></a> blah'
# Looks like you failed 1 test of 28.
t/param.t .......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/28 subtests |
インストールされているモジュールのバージョン
- Catalyst::Plugin::Session ...loaded. (0.20 >= 0.06)
- URI ...loaded. (1.37)
- URI::QueryParam ...loaded. (0)
- URI::Find ...loaded. (20090319)
- HTML::TokeParser::Simple ...loaded. (3.15)
- MIME::Types ...loaded. (1.27)
- Test::MockObject ...loaded. (1.09 >= 1.01)
- MRO::Compat ...loaded. (0.09)
URI::Find のバージョンを 0.16 に変更してやるとインストールできた。
ちなみに試した環境は Mac(Leopard) です。
これでようやく Task::Catalyst がはいった。。。。
DBIx::Class をいれようとした時に少しハマったのでメモ。
どうやら CPAN コマンドを使ってインストールしようとすると
Mac にバンドルされている sqlite を使ってないらしい。。。
そのためインストールに失敗する。
これを回避しようと思うと Makefile.PL に USE_LOCAL_SQLITE=true に指定すればよいらしい。
1
2
3
| $sudo cpan
cpan[1]> o conf makepl_arg USE_LOCAL_SQLITE=true
cpan[2]> install DBD::SQLite |
o conf commit をしない限りここで変更しても cpan を再起動すると元の設定を使うことになる。
参考資料
DBD-SQLite-1.14
cpan コマンドでモジュールをインストールするときに Makefile.PL の引数を設定するCommentsAdd Star
どうも。久しぶりにエントリー書きます。
今回は compc を使って swc ファイルの作成を行います。
その際になんと、、、、
Class ファイルをすべてコマンドラインから指定してやらないといけないみたいなのです。
1
| compc compc -output [作成されるファイル名] -source-path [sourceのある場所] --include-classes [すべてのクラスファイル] |
これを実行すると swc ファイルを自分で作成することができます。
ただ何が問題かっていうと、
–include-classes にすべてのクラスファイルを指定しないといけないんです。
org.libspark.asreflect.errors.ASReflectError こんなフォーマットで。
これをファイルパスから取り出すのなんてめんどくさすぎる。
しかも / でなくて . 区切り。
というわけで、そこで perl の登場です。(※ここでは ASReflect を使用しています)
まず file だけを出力し、さらに .svn 以下のファイルを省きます。
1
| find -type f | grep -v svn |
この結果、出力される形式がこんな感じ
./org/libspark/asreflect/errors/ASReflectError.as
./org/libspark/asreflect/errors/NotFoundError.as
./org/libspark/asreflect/Method.as
./org/libspark/asreflect/Property.as
./org/libspark/asreflect/Parameter.as
./org/libspark/asreflect/Member.as
./org/libspark/asreflect/MetadataAware.as
./org/libspark/asreflect/Metadata.as
./org/libspark/asreflect/Type.as
./org/libspark/asreflect/ASReflect.as
./org/libspark/asreflect/TypeFactory.as
./org/libspark/asreflect/builders/BasicConstantHandler.as
./org/libspark/asreflect/builders/BasicTypeFactory.as
./org/libspark/asreflect/builders/BasicVariableHandler.as
./org/libspark/asreflect/builders/ImplementsInterfaceHandler.as
./org/libspark/asreflect/builders/ExtendsClass.as
./org/libspark/asreflect/builders/ImplementsInterface.as
./org/libspark/asreflect/builders/ParseContext.as
./org/libspark/asreflect/builders/BasicConstructorHandler.as
./org/libspark/asreflect/builders/BasicFactoryHandler.as
./org/libspark/asreflect/builders/ElementHandler.as
./org/libspark/asreflect/builders/BasicTypeHandler.as
./org/libspark/asreflect/builders/BasicAccessorHandler.as
./org/libspark/asreflect/builders/BasicParameterHandler.as
./org/libspark/asreflect/builders/BasicMethodHandler.as
./org/libspark/asreflect/builders/Arg.as
./org/libspark/asreflect/builders/BasicMetadataHandler.as
./org/libspark/asreflect/builders/ArgHandler.as
./org/libspark/asreflect/builders/XmlParser.as
./org/libspark/asreflect/builders/ExtendsClassHandler.as
./org/libspark/asreflect/impls/BasicType.as
./org/libspark/asreflect/impls/MetadataAwareSupport.as
./org/libspark/asreflect/impls/BasicMember.as
./org/libspark/asreflect/impls/BasicParameter.as
./org/libspark/asreflect/impls/BasicProperty.as
./org/libspark/asreflect/impls/BasicMetadata.as
./org/libspark/asreflect/impls/BasicMethod.as
これを整形します。
1. ./ を削除
2. .as を削除
3. / を . に変換
4. 空白区切りで連結して出力
この肯定を行えばいいわけです。
そこで登場するのが perl -p です。 perl -n でもいいです。
違いは改行あるかないか程度です。
これを使うことで
これと等価になるわけです。
つまりは、
1
2
3
4
5
6
7
8
| perl -ple 'chomp; s{\./}{};s{\.as$}{}s;s{/}{.}g';
whild(<>) {
chomp;
s{\./}{};
s{\.as$}{}s;
s{/}{.}g';
} |
ということですね。
簡単で便利です。
これでコマンドラインからの作業が軽減されました。
ちなみにこんなこともできるみたいです。
1
2
3
4
5
6
7
8
| perl -ple 'push @a, $_; }{ print @a;';
whild(<>) {
push @a, $_;
}
{
print @a;
} |
すげぇ~便利!!!
これで出力された値を –include-classes に指定して実行すれば
swc ファイルが生成されます。
これで毎度毎度の作業が楽になりそうです。
perl の特殊変数のメモ
$\ => printの末尾に出力される。 (perl -l だと “\n” のはず??)
$, => printを使った時のセパレータ
$” => リストコンテキスト変数展開をダブルクォートの中で行った時の区切り文字
$/ => ファイルハンドルからとってくる区切り文字
参考資料
特殊変数一覧
Perlコマンドラインオプション