[perldocjp-cvs 1940] CVS update: docs/modules/Class-Accessor-0.18

Back to archive index

argra****@users***** argra****@users*****
2015年 8月 3日 (月) 22:57:27 JST


Index: docs/modules/Class-Accessor-0.18/Accessor.pod
diff -u docs/modules/Class-Accessor-0.18/Accessor.pod:1.4 docs/modules/Class-Accessor-0.18/Accessor.pod:1.5
--- docs/modules/Class-Accessor-0.18/Accessor.pod:1.4	Thu Jan 27 22:14:46 2011
+++ docs/modules/Class-Accessor-0.18/Accessor.pod	Mon Aug  3 22:57:26 2015
@@ -1,14 +1,17 @@
 
 =encoding euc-jp
 
-=pod
+=head1 NAME
+
+=begin original
 
-=head1 名前
+Class::Accessor - Automated accessor generation
 
-  Class::Accessor - アクセサの自動生成
+=end original
 
+Class::Accessor - アクセサの自動生成
 
-=head1 概要
+=head1 SYNOPSIS
 
   package Foo;
 
@@ -29,15 +32,23 @@
   $foo->set('that', 'crazy thing');
 
 
-=head1 説明
+=head1 DESCRIPTION
+
+=begin original
 
 This module automagically generates accessor/mutators for your class.
 
+=end original
+
 このモジュールは、あなたのクラスに自動でアクセサ/ミューテータを生成する。
 
+=begin original
+
 Most of the time, writing accessors is an exercise in cutting and
 pasting.  You usually wind up with a series of methods like this:
 
+=end original
+
 通常、アクセサを書くことはカット&ペーストの練習だ。いつも
 このように一連のメソッドを書くはめになる:
 
@@ -73,41 +84,61 @@
 
   # 等々...
 
+=begin original
+
 One for each piece of data in your object.  While some will be unique,
 doing value checks and special storage tricks, most will simply be
 exercises in repetition.  Not only is it Bad Style to have a bunch of
 repetitious code, but its also simply not Lazy, which is the real
 tragedy.
 
+=end original
+
 オブジェクト内のデータの各部分をみてみる。あるものは独特で、値のチェックや
 特殊なデータ保持の技巧を行なう一方、大部分は単純な反復作業だ。繰り返される
 コードの山をつくるのは、「悪いスタイル」であるだけでなく、全くもって
 [訳補足:Perlの美徳である]無精でもない。これは真の悲劇である。
 
+=begin original
+
 If you make your module a subclass of Class::Accessor and declare your
 accessor fields with mk_accessors() then you'll find yourself with a
 set of automatically generated accessors which can even be
 customized!
 
+=end original
+
 もしもあなたのモジュールをClass::Accessorのサブクラスにし、mk_accessors()で
 アクセサフィールドを宣言するなら、自動的に生成されたアクセサの一揃いを見出す
 だろう。このアクセサはカスタマイズさえ可能だ!
 
+=begin original
+
 The basic set up is very simple:
 
+=end original
+
 基本的な段取りは大変シンプルだ:
 
     package My::Class;
     use base qw(Class::Accessor);
     My::Class->mk_accessors( qw(foo bar car) );
 
+=begin original
+
 Done.  My::Class now has simple foo(), bar() and car() accessors
 defined.
 
+=end original
+
 さあできた。My::Classには今やfoo()、bar()そしてcar()というアクセサが
 定義された。
 
-=head2 何が違うの?(What Makes This Different?)
+=head2 What Makes This Different?
+
+(何が違うの?)
+
+=begin original
 
 What makes this module special compared to all the other method
 generating modules (L<"SEE ALSO">)?  By overriding the get() and set()
@@ -116,6 +147,8 @@
 memory than most other solutions which generate a new method for each
 accessor.
 
+=end original
+
 他の全てのメソッド生成モジュール(L<"参考">)と比較して、このモジュールを
 特別なものにしているのは何か? get()及びset()メソッドをオーバーライドする
 ことによって、クラス全体でアクセサの振る舞いを変更させることができる。また、
@@ -123,7 +156,9 @@
 他の大部分の解決方法に比べて、メモリ消費が若干少なくなるはずだ。
 
 
-=head2 メソッド
+=head2 Methods
+
+(メソッド)
 
 =over 4
 
@@ -135,18 +170,26 @@
     my $obj = Class->new(\%fields);
     my $obj = $other_obj->new(\%fields);
 
+=begin original
+
 Class::Accessor provides a basic constructor.  It generates a
 hash-based object and can be called as either a class method or an
 object method.  
 
+=end original
+
 Class::Accessorは基本的なコンストラクタを提供する。これはハッシュベースの
 オブジェクト生成し、クラスメソッドとしてもオブジェクトメソッドとしても
 呼び出すことができる。
 
+=begin original
+
 It takes an optional %fields hash which is used to initialize the
 object (handy if you use read-only accessors).  The fields of the hash
 correspond to the names of your accessors, so...
 
+=end original
+
 オプションとして%fieldsハッシュを取り、オブジェクトの初期化に利用される
 (読取専用アクセサに使うと便利だ)。ハッシュのフィールドはアクセサの
 名前に対応する。だから…
@@ -158,9 +201,13 @@
     my $obj = Class->new({ foo => 42 });
     print $obj->foo;    # 42
 
+=begin original
+
 however %fields can contain anything, new() will shove them all into
 your object.  Don't like it?  Override it.
 
+=end original
+
 だが%fieldsはどんなものでも含むことができる。new()はそれらを全て
 オブジェクトに押し込むだろう。それは嫌だって?オーバーライドすればよい。
 
@@ -170,11 +217,15 @@
 
     Class->mk_accessors(@fields);
 
+=begin original
+
 This creates accessor/mutator methods for each named field given in
 @fields.  Foreach field in @fields it will generate two accessors.
 One called "field()" and the other called "_field_accessor()".  For
 example:
 
+=end original
+
 これは@fieldsで与えられたフィールド用のアクセサ/ミューテータメソッドを
 作成する。@fieldsの各フィールド用に、二つのアクセサが生成される。一つは
 "field()"で、もう一つは"_field_accessor()"と呼ばれる。例えば:
@@ -182,9 +233,13 @@
     # foo()、_foo_accessor()、bar()そして_bar_accessor()が生成される
     Class->mk_accessors(qw(foo bar));
 
+=begin original
+
 See L<CAVEATS AND TRICKS/"Overriding autogenerated accessors">
 for details.
 
+=end original
+
 詳細はL<警告とトリック/"自動生成されたアクセサのオーバーライド">を参照のこと。
 
 =pod
@@ -195,11 +250,15 @@
 
   Class->mk_ro_accessors(@read_only_fields);
 
+=begin original
+
 Same as mk_accessors() except it will generate read-only accessors
 (ie. true accessors).  If you attempt to set a value with these
 accessors it will throw an exception.  It only uses get() and not
 set().
 
+=end original
+
 mk_accessors()と同じだが、読み取り専用アクセサを生成する(つまり
 真のアクセサだ)。このアクセサで値をセットしようとすると、例外を
 投げる。このメソッドはget()だけを使い、set()は使わない。
@@ -219,18 +278,26 @@
 
   Class->mk_wo_accessors(@write_only_fields);
 
+=begin original
+
 Same as mk_accessors() except it will generate write-only accessors
 (ie. mutators).  If you attempt to read a value with these accessors
 it will throw an exception.  It only uses set() and not get().
 
+=end original
+
 mk_accessors()と同じだが、書き込み専用アクセサを生成する(つまり
 ミューテータだ)。このアクセサで値を取得しようとすると、例外を
 投げる。このメソッドはset()だけを使い、get()は使わない。
 
+=begin original
+
 B<NOTE> I'm not entirely sure why this is useful, but I'm sure someone
 will need it.  If you've found a use, let me know.  Right now its here
 for orthoginality and because its easy to implement.
 
+=end original
+
 B<注意> 私はなぜこれが便利なのか完全には確信が持てない。だが、誰かがそれを
 必要とすると確信している。もし使い道を知っているなら、私に教えてほしい。
 [訳者:最後一文が訳せませんでした]
@@ -247,15 +314,25 @@
 
 =back
 
+=begin original
+
 The rest is details.
 
+=end original
+
 残りは詳細について。
 
-=head1 詳細
+=head1 DETAILS
+
+(詳細)
+
+=begin original
 
 An accessor generated by Class::Accessor looks something like
 this:
 
+=end original
+
 Class::Accessorが生成するアクセサは、このようになっている:
 
     # fooには色々なバリエーションがあるだろう
@@ -269,28 +346,42 @@
         }
     }
 
+=begin original
+
 Very simple.  All it does is determine if you're wanting to set a
 value or get a value and calls the appropriate method.
 Class::Accessor provides default get() and set() methods which
 your class can override.  They're detailed later.
 
+=end original
+
 とても単純だ。やっていることは、あなたが値をセットしたいのか取得したい
 のかを決定し、適切なメソッドを呼び出しているだけだ。Class::Accessorは
 デフォルトのget()及びset()メソッドを提供する。これはあなたのクラスで
 オーバーライドすることができる。これについては後で細かく扱う。
 
-=head2 アクセサの振る舞いを変更する
+=head2 Modifying the behavior of the accessor
+
+(アクセサの振る舞いを変更する)
+
+=begin original
 
 Rather than actually modifying the accessor itself, it is much more
 sensible to simply override the two key methods which the accessor
 calls.  Namely set() and get().
 
+=end original
+
 アクセサそれ自身を本当に変更するよりもむしろ、そのアクセサを呼び出す
 二つのキーメソッドを単純にオーバーライドしたほうがずっと実際的だ。
 すなわち、set()とget()のオーバーライドである。
 
+=begin original
+
 If you -really- want to, you can override make_accessor().
 
+=end original
+
 もしあなたが-本当に-望むなら、make_accessor()をオーバーライドできる。
 
 =over 4
@@ -300,12 +391,20 @@
     $obj->set($key, $value);
     $obj->set($key, @values);
 
+=begin original
+
 set() defines how generally one stores data in the object.
 
+=end original
+
 set()は、オブジェクト内のデータを一般的にどのように保持するか定義する。
 
+=begin original
+
 override this method to change how data is stored by your accessors.
 
+=end original
+
 このメソッドをオーバーライドすると、アクセサのデータ保持の仕方が変化する。
 
 =pod
@@ -315,27 +414,43 @@
     $value  = $obj->get($key);
     @values = $obj->get(@keys);
 
+=begin original
+
 get() defines how data is retreived from your objects.
 
+=end original
+
 get()は、オブジェクトからどのようにデータを取り出すかを定義する。
 
+=begin original
+
 override this method to change how it is retreived.
 
+=end original
+
 このメソッドをオーバーライドすると、取り出し方が変化する。
 
 =item B<make_accessor>
 
     $accessor = Class->make_accessor($field);
 
+=begin original
+
 Generates a subroutine reference which acts as an accessor for the given
 $field.  It calls get() and set().
 
+=end original
+
 $field用のアクセサとして動作するサブルーチンへのリファレンスを生成する。
 それはget()とset()を呼び出す。
 
+=begin original
+
 If you wish to change the behavior of your accessors, try overriding
 get() and set() before you start mucking with make_accessor().
 
+=end original
+
 アクセサの振る舞いを変更したいなら、make_accessor()をいじくる前に
 get()とset()をオーバーライドしてみること。
 
@@ -345,14 +460,22 @@
 
     $read_only_accessor = Class->make_ro_accessor($field);
 
+=begin original
+
 Generates a subroutine refrence which acts as a read-only accessor for
 the given $field.  It only calls get().
 
+=end original
+
 $field用の読み取り専用アクセサとして振舞うサブルーチンリファレンスを
 生成する。このメソッドはget()を呼び出すだけだ。
 
+=begin original
+
 Override get() to change the behavior of your accessors.
 
+=end original
+
 get()をオーバーライドしてアクセサの振る舞いを変更できる。
 
 =pod
@@ -361,34 +484,52 @@
 
     $read_only_accessor = Class->make_wo_accessor($field);
 
+=begin original
+
 Generates a subroutine refrence which acts as a write-only accessor
 (mutator) for the given $field.  It only calls set().
 
+=end original
+
 $field用の書き込み専用アクセサ(ミューテータ)として振舞う
 サブルーチンリファレンスを生成する。このメソッドはset()を呼び出すだけだ。
 
+=begin original
+
 Override set() to change the behavior of your accessors.
 
+=end original
+
 set()をオーバーライドしてアクセサの振る舞いを変更できる。
 
 =pod
 
 =back
 
-=head1 効率
+=head1 EFFICIENCY
+
+(効率)
+
+=begin original
 
 Class::Accessor does not employ an autoloder, thus it is much faster
 than you'd think.  Its generated methods incur no special penalty over
 ones you'd write yourself.
 
+=end original
+
 Class::Accessorはオートローダーを使っていない。それゆえ、あなたが
 思っているよりずっと高速だ。生成されたメソッドが、あなた自身で書いた
 場合に生じるであろう特別なペナルティを被ることはない。
 
+=begin original
+
 Here's the results of benchmarking Class::Accessor,
 Class::Accessor::Fast, a hand-written accessor and direct hash access
 (generated by examples/bench).
 
+=end original
+
 以下はClass::Accessor、Class::Accessor::Fast、手書きのアクセサ、及び
 直接ハッシュにアクセスするやり方によるベンチマークの結果である
 (examples/benchで生成)。
@@ -414,16 +555,22 @@
   Direct - set:  2 wallclock secs ( 0.87 usr +  0.00 sys =  0.87 CPU) 
                  @ 574712.64/s (n=500000)
 
+=begin original
+
 So Class::Accessor::Fast is just as fast as one you'd write yourself
 while Class::Accessor is twice as slow, a price paid for flexibility.
 Direct hash access is about six times faster, but provides no
 encapsulation and no flexibility.
 
+=end original
+
 Class::Accessor::Fastはあなた自身が書いた場合と同じ速さだ。その一方
 Class::Accessorは柔軟性のために支払われるコストのため、倍遅くなる。
 直接ハッシュにアクセスするのは約6倍高速だ。だがカプセル化と柔軟性は
 提供されない。
 
+=begin original
+
 Of course, its not as simple as saying "Class::Accessor is twice as
 slow as one you write yourself".  These are benchmarks for the
 simplest possible accessor, if your accessors do any sort of
@@ -432,6 +579,8 @@
 calling the accessor.  In that case, Class::Accessor and the ones you
 write will tend to be just as fast.
 
+=end original
+
 もちろん、「Class::Accessorは自分で書くより倍遅い」と言えるほど単純では
 ない。これらは最も単純なアクセサによるベンチマークであり、
 あなたのアクセサが何らかの複雑な仕事(データベースとの対話やファイル
@@ -439,11 +588,17 @@
 アクセサを呼び出すのにかかる時間をいっきに圧倒するだろう。その場合、
 Class::Accessorとあなたが書くものとは同じ速さに向かうことになる。
 
-=head1 例
+=head1 EXAMPLES
+
+(例)
+
+=begin original
 
 Here's an example of generating an accessor for every public field of
 your class.
 
+=end original
+
 パブリックな全クラスフィールド用のアクセサ生成例。
 
     package Altoids;
@@ -473,8 +628,12 @@
     print $pouch->{strong};     # 'Fuck you up strong!'を出力
 
 
+=begin original
+
 Here's a simple example of altering the behavior of your accessors.
 
+=end original
+
 アクセサの振る舞いを変更する簡単な例。
 
     package Foo;
@@ -500,37 +659,59 @@
     }
 
 
-=head1 警告とトリック
+=head1 CAVEATS AND TRICKS
+
+(警告とトリック)
+
+=begin original
 
 Class::Accessor has to do some internal wackiness to get its
 job done quickly and efficiently.  Because of this, there's a few
 tricks and traps one must know about.
 
+=end original
+
 Class::Accessorは、その仕事を素早く効率よくやるために内部で
 変わったことをやらねばならない。このため、知っておくべきいくつかの
 トリックとトラップとがある。
 
+=begin original
+
 Hey, nothing's perfect.
 
+=end original
+
 やあ、完璧なものなんてないのさ。
 
-=head2 DESTROYという名前のフィールドをつくらないこと
+=head2 Don't make a field called DESTROY
+
+(DESTROYという名前のフィールドをつくらないこと)
+
+=begin original
 
 This is bad.  Since DESTROY is a magical method it would be bad for us
 to define an accessor using that name.  Class::Accessor will
 carp if you try to use it with a field named "DESTROY".
 
+=end original
+
 これはまずい。DESTROYはマジカルメソッドであるため、その名前を
 使ったアクセサを定義するとまずいことになるだろう。フィールド名に
 "DESTROY"とつけようと試みた場合、Class::Accessorはcarpする。
 
-=head2 自動生成されたアクセサのオーバーライド
+=head2 Overriding autogenerated accessors
+
+(自動生成されたアクセサのオーバーライド)
+
+=begin original
 
 You may want to override the autogenerated accessor with your own, yet
 have your custom accessor call the default one.  For instance, maybe
 you want to have an accessor which checks its input.  Normally, one
 would expect this to work:
 
+=end original
+
 あなたは自動生成されたアクセサをオーバーライドしたいと思うかもしれない。
 しかもそのカスタマイズしたアクセサは、デフォルトのアクセサを呼ぶ。
 例えば、入力をチェックするアクセサが欲しい場合。通常、次のような動作を
@@ -556,18 +737,26 @@
         return $self->SUPER::email(@_);
     }
 
+=begin original
+
 There's a subtle problem in the last example, and its in this line:
 
+=end original
+
 最後の例に微妙な問題が存在する。それは次の行にある:
 
     return $self->SUPER::email(@_);
 
+=begin original
+
 If we look at how Foo was defined, it called mk_accessors() which
 stuck email() right into Foo's namespace.  There *is* no
 SUPER::email() to delegate to!  Two ways around this... first is to
 make a "pure" base class for Foo.  This pure class will generate the
 accessors and provide the necessary super class for Foo to use:
 
+=end original
+
 Fooがどのように定義されているかみてみると、Fooが呼び出した
 mk_accessors()は、email()をFooの名前空間に入れている。委譲するための
 SUPER::email()は存在*しない*! これについて二つの方法がある…一つ目は
@@ -581,17 +770,25 @@
     package Foo;
     use base qw(Pure::Organic::Foo);
 
+=begin original
+
 And now Foo::email() can override the generated
 Pure::Organic::Foo::email() and use it as SUPER::email().
 
+=end original
+
 今度はFoo::email()が生成されたPure::Organic::Foo::email()を
 オーバーライドし、それをSUPER::email()として利用できる。
 
+=begin original
+
 This is probably the most obvious solution to everyone but me.
 Instead, what first made sense to me was for mk_accessors() to define
 an alias of email(), _email_accessor().  Using this solution,
 Foo::email() would be written with:
 
+=end original
+
 これは恐らく私以外の万人にとって最も明快な解決方法だろう。代わりに、
 私がまず理解できたのは、mk_accessors()がemail()のエイリアスである
 _email_accessor()を定義することだった。この解決方法を使えば、
@@ -599,33 +796,47 @@
 
     return $self->_email_accessor(@_);
 
+=begin original
+
 instead of the expected SUPER::email().
 
+=end original
+
 これでSUPER::email()の代わりになる。
 
-=head1 作者
+=head1 AUTHOR
 
 Michael G Schwern <schwe****@pobox*****>
 
 
-=head1 謝辞
+=head1 THANKS
+
+(謝辞)
 
 Thanks to Tels for his big feature request/bug report.
 
 
-=head1 参考
+=head1 SEE ALSO
 
 L<Class::Accessor::Fast>
 
+=begin original
+
 These are some modules which do similar things in different ways
 L<Class::Struct>, L<Class::Methodmaker>, L<Class::Generate>,
 L<Class::Class>, L<Class::Contract>
 
+=end original
+
 違う方法で似たようなことを行なうモジュール
 L<Class::Struct>, L<Class::Methodmaker>, L<Class::Generate>,
 L<Class::Class>, L<Class::Contract>
 
+=begin original
+
 L<Class::DBI> for an example of this module in use.
 
+=end original
+
 L<Class::DBI>にはこのモジュールの例がある。
 



perldocjp-cvs メーリングリストの案内
Back to archive index