Module: Once::ClassMethods
- Defined in:
- lib/chem/utils/once.rb
Instance Method Summary collapse
-
#once(*ids) ⇒ Object
:nodoc:.
Instance Method Details
#once(*ids) ⇒ Object
:nodoc:
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/chem/utils/once.rb', line 9 def once(*ids) # :nodoc: for id in ids module_eval " alias_method :__\#{id.to_i}__, :\#{id.to_s}\n private :__\#{id.to_i}__\n def \#{id.to_s}(*args, &block)\n if defined? @__\#{id.to_i}__\n @__\#{id.to_i}__\n elsif ! self.frozen?\n @__\#{id.to_i}__ ||= __\#{id.to_i}__(*args, &block)\n else\n __\#{id.to_i}__(*args, &block)\n end\n end\n end;\n end\nend\n", __FILE__, __LINE__ |