module Objector

Constants

VERSION

Public Class Methods

new(args = {}) click to toggle source
# File lib/objector.rb, line 4
def initialize(args = {})
    args.each do |k, v|
      if has_attribute?(k)
        result = v.instance_of?(Array) ? build_all_from_array(k, v) : instantiate_object(v, k)
        add(k, result)
      end
    end
end

Private Instance Methods

add(attribute, result) click to toggle source
# File lib/objector.rb, line 19
def add(attribute, result)
  instance_variable_set("@#{attribute}", result)
end
build_all_from_array(k, v) click to toggle source
# File lib/objector.rb, line 15
def build_all_from_array(k, v)
  v.inject([]) { |arr, v1| arr << instantiate_object(v1, k) }
end
class_name(klass) click to toggle source
# File lib/objector.rb, line 31
def class_name(klass)
  klass.to_s.split('_').map { |v| v.capitalize }.join
end
get_module_name() click to toggle source
# File lib/objector.rb, line 35
def get_module_name
  (self.class.name =~ /^(.+::).+$/) ? $1 : ''
end
has_attribute?(k) click to toggle source
# File lib/objector.rb, line 23
def has_attribute?(k)
  !defined?(k).nil?
end
instantiate_object(value, klass) click to toggle source
# File lib/objector.rb, line 27
def instantiate_object(value, klass)
  value.instance_of?(Hash) ? Object.const_get(class_name(klass)).new(value) : value
end