Class: Bskyrb::DynamicClassFromHash

Inherits:
Object
  • Object
show all
Defined in:
lib/bskyrb/codegen.rb

Class Method Summary collapse

Class Method Details

.from_hash(hash) ⇒ Object



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# File 'lib/bskyrb/codegen.rb', line 172

def self.from_hash(hash)
  hash.each do |klass_sym, properties|
    Object.const_set(klass_sym, Class.new do
      attr_accessor(*properties.keys.map(&:to_sym))

      def self.from_hash(properties)
        # httparty-returned string-keyed hash body
        instance = new
        properties.each do |key, value|
          instance.send("#{key}=", value)
        end
        instance
      end
    end)
  end
end