From: Marc Heiler Date: 2013-02-03T18:12:20+09:00 Subject: Storing string-data in a module Hi. I have big module with many tiny methods. These methods all return a string. Example: module Foo def one(i = '') return '<'+i+'>' end def two(i = '') return '<'+i+i+'>' end end So far so good. Please note that this is just a short demo, a simplification. The real module is huge, and much more complicated. But I just want to demo something relevant for my question. Now, I include this module into class bar. class Bar include Foo attr_reader :string def initialize @string = '' build_string end def build_string @string << one('hello') @string << two('world') end end x = Bar.new x.string Ok this will return this string: "" So far, everything works correctly. As you can see, in class Bar I can use an @ivar, in this case @string. Now, however, I _also_ want to be able to store this in the module. But how can I do this? I could use a global variable, but this is awful. I could use a constant, like X = [''] and append to that in the module, but this is also awful. Why would I want this? Because a module is more flexible than a class - I can use the module to mix it into other classes AND I could use the module standalone. Any suggestion for how to store this information in the module? I want to have the module give me back the current version of the string it uses. And I also must keep the core functionality of including all those methods in the module into my new, more specialized classes. Any HELPFUL suggestions welcome! -- Posted via http://www.ruby-forum.com/.