class DTK::DSL::InputOutputCommon::Hash

Public Class Methods

new(parent_class, hash = nil) click to toggle source
Calls superclass method
# File lib/dsl/input_output_common/hash.rb, line 21
def initialize(parent_class, hash = nil)
  super()
  replace(reify(parent_class, hash)) if hash
end

Private Instance Methods

reify(parent_class, obj) click to toggle source
# File lib/dsl/input_output_common/hash.rb, line 28
def reify(parent_class, obj)
  if obj.kind_of?(self.class)
    obj
  elsif obj.kind_of?(::Hash)
    obj.inject(self.class.new(parent_class)) { |h, (k, v)| h.merge(k => reify(parent_class, v)) }
  elsif obj.kind_of?(::Array)
    parent_class::Array.new(parent_class, obj)
  else
    obj
  end
end