From: Intransition Date: 2011-05-02T03:33:10+09:00 Subject: Re: Wrap external source file in a module On May 1, 1:55 pm, Alexey Muranov wrote: > Hello, i have another question. > > I have a strange situation which i have not resolved yet where for some > reason i have to wrap several classes in a module, otherwise the program > doesn't work as expected (by me of course). > Can anybody please tell me the following: is it possible to read class > definition from another file and wrap them in a module? > > Here is an example: > > I have several classes defined in a file models.rb: > >     class Person >       ... >     end > >     class Address >       ... >     end > > I want to load or require this file in another file, say program.rb, so > that the classes were wrapped together in a module M, like > >     module M >       load "models.rb" >     end > >     p = M::Person.new > > but this doesn't work (M::Person is an uninitialized constant, according > to an error message). > > Is there some way to do this? You need to evaluate the file:     module M       module_eval File.read(File.dirname(__FILE__) + '/models.rb')     end     p = M::Person.new