それrubyでもできるよ

javascriptのprototypeのような関数の動的定義

str="wawawa"
p str
   #=>"wawawa"
#==別名を定義しておくと後で呼べる。
#module Kernel; alias _p p end

#どこでも、このように書けば組込みメソッド的なものも定義できる
module Kernel; def p(arg); puts "===#{arg}==="; end; end
   #p()はKernel::p


p str 
   #=>===wawawa===
#_p str #元のp(別名を定義しておいた場合に限る)
   #=>"wawawa"

rubyってオブジェクトベースプロトタイプベース的な性質も持っている?