gaaamiiのブログ

悪気なく間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

おれにしかできないこと

(2015年1月追記)今読むと、何がしたいのかわからない。自分の記録のために残していますが、検索から来た方のために断っておくと、この記事は特異クラスの説明としてあまり良いものではありません。

モラトリアムの何とも言えない焦燥感をRubyで書きました。irb上でもがくおれオブジェクトを観察しながら、パーフェクトRuby の第6章で学んだ特異クラスを理解することを目的としています。


class Hito

  def yaru
    "それなりの結果"
  end 

  def ganbaru
    def self.yaru_sugoikoto
      "すごい結果"
    end 
  end

  def motto_ganbaru
    self.extend Dekirukoto
  end

end

module Dekirukoto

  def yaru_hitono_tameni
    "感謝"
  end

  def yaru_kazokuno_tameni
    "感謝"
  end

end

最初はおれもあいつも、特別なことなんてできやしなかった。ただの人だった。

ore = Hito.new #=> #<Hito:0x007fb8cc45c810>
aitsu = Hito.new #=> #<Hito:0x007fb8cc47dee8>

ore.singleton_methods #=> []
aitsu.singleton_methods #=> []

あいつが頑張っている姿を見ても、何にも成果は出ていないように見えた。 空振りをしているその様をみて、ちょっと笑ってしまうくらいだった。

aitsu.ganbaru #=> nil

でも、気付くとあいつは特別な能力を身につけていて、すごい結果を出すようになっていた。

aitsu.yaru_sugoikoto #=> "すごい結果"

悔しかった。 あいつができるならおれだってできる!と思って真似をしてみたけど、おれにはできなかった。

ore.yaru_sugoikoto #=> NoMethodError: undefined method `yaru_sugoikoto'

あいつはどんどんできることが増えていく。 気付けば人のために働いて、感謝されるようになっている。

aitsu.motto_ganbaru #=> <Hito:0x007fb8cc47dee8>
aitsu.yaru_hitono_tameni #=> "感謝"
aitsu.yaru_kazokuno_tameni #=> "感謝"

あいつは恵まれた環境だったから...と言いたくなるけれど、スタートが同じだったことはわかっている。

ore.class #=> Hito
aitsu.class #=> Hito

苦しくなって、一度自分と向き合ってみる。 実は自分にも隠れた才能があるんじゃないか、特別な人間なんじゃないかと鏡を見る。具体的にはわからないけど、きっとおれは特別なんだ。

ore.singleton_class #=> #<Class:#<Hito:0x007fcd113eb468>>

おれは特別だ。特別なんだ。 そう言い聞かせて、おれにしかできないことを何度も探すけれど、結果は変わらない。 せいぜい自分がいかに空っぽかを痛感するだけだ。

ore.singleton_methods #=> []
ore.singleton_methods #=> []
ore.singleton_methods #=> []

本当はわかってる。 地道にがんばるしかない。 たとえ目に見える結果がすぐには返ってこなくても。

ore.ganbaru #=> nil