class Module def publish(*args) a = args.fattern public *a return *a end def readonly(*args) a = args.fattern w,r = a.partition { |m| m.to_s[-1,1] == '=' } private *w public *r return *a end def writeonly(*args) a = args.fattern w,r = a.partition { |m| m.to_s[-1,1] == '=' } private *r public *w return *a end def hidden(*args) a = args.fattern private *a return *a end end