On Aug 3, 2006, at 1:05 AM, Pavel Smerk wrote: > Hello, > > I have a file with some functions which share some common > variables. I want to have these functions visible in whole program > (or at least in some classes by making a module from the file and > mix it into these classes), but I'd like to make shared variables > remain unvisible to the rest of the program. Is it possible in Ruby? > > Thanks, > > P. > Yeah, if you really want to do this you can do: module A shared = 1 define_method(:uses_shared1) { shared += 1; puts shared } define_method(:uses_shared2) { puts shared } end class B include A end b = B.new b.uses_shared1 b.uses_shared2