宮川といいます。

On Fri, 11 Jan 2002 12:06:56 +0900
Taku Nakajima <tnakajima / brain-tokyo.jp> wrote:

> みなさんの議論を参考にして、こういうスタイルの開発を支援する
> collaboration.rbというライブラリを作ってみました。

(Perl の話で恐縮ですが、)original.pm というのをつくってみました。
もし興味のある方がいらっしゃいましたら、なにかご意見などいただける
と幸いです。

# 本来の趣旨をあまり理解してない可能性もあるので(汗

http://bulknews.net/lib/archives/original-0.01.tar.gz


NAME
    original - MixJuice in Perl

SYNOPSIS
      package Animal;
      sub new {
          my($class, $hashref) = @_;
          bless {%$hashref}, $class;
      }

      package Animal::Speak;
      use original 'Animal';

      sub speak {
          my $self = shift;
          return "My name is $self->{name}";
      }

      package Animal::Dog;
      use original 'Animal';

      sub bark {
          return 'bow wow';
      }

      sub speak {
          my $self = shift;
          if ($self->{name} eq 'Snoopy') {
              return "Snoopy is $self->{name}";
          }
          $self->ORIGINAL::speak(@_);
          # or $self->original(@_);
      }

      # Then, in a main script!
      use Animal;
      use Animal::Speak;

      my $spot = Animal->new({ name => 'Spot' });
      print $spot->speak;  # 'My name is Spot';

      use Animal::Dog;
      my $snoopy = Animal->new({ name => 'Snoopy' });
      print $snoopy->bark;  # 'bow wow';
      print $snoopy->speak; # 'Snoopy is Snoopy';

DESCRIPTION
    original.pm is a proof-of-concept implemetation of MixJuice, in Perl.
    See http://staff.aist.go.jp/y-ichisugi/mj/ for details :)

AUTHOR
    Tatsuhiko Miyagawa <miyagawa / bulknews.net>

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO
    http://www.ogis-ri.co.jp/otc/hiroba/technical/MixJuice/, the NEXT
    manpage, the Exporter::Lite manpage, the Class::Virtually::Abstract
    manpage




--
Tatsuhiko Miyagawa <miyagawa / bulknews.net>