class AtlasClassFactory::GenericClass

Public Class Methods

new(hash) click to toggle source
# File lib/client/atlas_class_factory.rb, line 19
def initialize(hash)
  hash.each do |k,v|
    self.instance_variable_set("@#{k}", v)
    self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
    self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
  end
end

Public Instance Methods

create_class(name) click to toggle source
# File lib/client/atlas_class_factory.rb, line 16
def create_class name
  Object.const_set(name.classify,
                   Class.new do
                     def initialize(hash)
                       hash.each do |k,v|
                         self.instance_variable_set("@#{k}", v)
                         self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
                         self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
                       end
                     end
                   end
  )
end