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