メタプログラミングRuby を読み始めた
Ruby の知識は全然足りない状態で読み始めた.
とりあえず,色々調べながらで最初全然進めない感じですよ.
調べたこと - Ruby
gist にしようかと思ったけど,とりあえずそのまま貼る
構成としては,
Rakefile lib/object_model/alphanumeric.rb test/test_object_model_alphanumeric.rb
require 'rake/testtask' Rake::TestTask.new task :default => "test"
こんな感じ.
で,Perl で書き直してみた.
Makefile.PL lib/ObjectModel/Alphanumeric.pm t/ObjectModel_Alphanumeric.t
Makefile.PL
use inc::Module::Install; name 'ObjectModel-Alphanumeric'; all_from 'lib/ObjectModel/Alphanumeric.pm'; WriteAll;
lib/ObjectModel/Alphanumeric.pm
package ObjectModel::Alphanumeric; use strict; use warnings; # Perl5 は,そもそもネイティブなオブジェクト指向言語ではないので # autobox を使って,スカラにメソッドを刺せるようにする sub to_alphanumeric { ($_ = shift) =~ s/[^\w\s]//g; $_; } 1;
t/ObjectModel_Alphanumeric.t
#!/usr/bin/env perl use strict; use warnings; use Test::More; use FindBin; use lib qq|$FindBin::Bin/../lib|; use ObjectModel::Alphanumeric; use autobox SCALAR => 'ObjectModel::Alphanumeric'; is(ObjectModel::Alphanumeric::to_alphanumeric('#3, the *Magic, Number*?'), '3 the Magic Number'); is('#3, the *Magic, Number*?'->to_alphanumeric(), '3 the Magic Number'); done_testing;
ということで,とりあえず Rakefile, Makefile.PL を書く辺で止まっているけど,
順番にやっていこうと思う.
参考
メタプログラミングRuby
posted with amazlet at 11.01.16