# File lib/recursive_open_struct.rb, line 47 def [](name) key_name = _get_key_from_table_(name) v = @table[key_name] if v.is_a?(Hash) @sub_elements[key_name] ||= self.class.new( v, recurse_over_arrays: @recurse_over_arrays, preserve_original_keys: @preserve_original_keys, mutate_input_hash: true ) elsif v.is_a?(Array) and @recurse_over_arrays @sub_elements[key_name] ||= recurse_over_array(v) @sub_elements[key_name] = recurse_over_array(@sub_elements[key_name]) else v end end