def process_input(dest, args)
      # pass down predefined attributes.
      dest.parent = args[:parent]
      dest.test   = args[:test]
      
      return unless validate_input(dest, args)

      @input.each do |param|
        sym = param[:symbol]
        if args.key? sym
          sym_assign = "#{sym}=".to_sym
          dest.send(sym_assign, args[sym])      
        end
      end
    end
def process_input(dest, args)
      # pass down predefined attributes.
      dest.parent = args[:parent]
      dest.test   = args[:test]
      
      return unless validate_input(dest, args)

      @input.each do |param|
        sym = param[:symbol]
        if args.key? sym
          sym_assign = "#{sym}=".to_sym
          dest.send(sym_assign, args[sym])      
        end
      end
    end
Goes through, and assigns the value for each declared parameter to an accessor
 with the same name, validating that required parameters are not missing