class Vra::RequestParameters

Public Class Methods

new() click to toggle source
# File lib/vra/request_parameters.rb, line 21
def initialize
  @entries = {}
end

Public Instance Methods

all_entries() click to toggle source
# File lib/vra/request_parameters.rb, line 80
def all_entries
  @entries.values
end
delete(key) click to toggle source
# File lib/vra/request_parameters.rb, line 76
def delete(key)
  @entries.delete(key)
end
set(key, type, value) click to toggle source
# File lib/vra/request_parameters.rb, line 52
def set(key, type, value)
  if key.to_s.include? "~"
    split_key = key.to_s.split("~")
    parent = nil
    split_key.each_with_index do |item, index|
      if index == 0
        if @entries[item].nil?
          @entries[item] = Vra::RequestParameter.new(item, nil, nil)
        end
        parent = @entries[item]
      elsif index == (split_key.count - 1)
        c = Vra::RequestParameter.new(item, type, value)
        parent.add_child(c)
      else
        p = Vra::RequestParameter.new(item, nil, nil)
        parent.add_child(p)
        parent = p
      end
    end
  else
    @entries[key] = Vra::RequestParameter.new(key, type, value)
  end
end
set_parameters(key, value_data, parent = nil) click to toggle source

@param key [String] - the name of the key @param value_data [Hash] - the data of the key name @note - the value_data must have type and value property in the hash

# File lib/vra/request_parameters.rb, line 28
def set_parameters(key, value_data, parent = nil)
  value_type = value_data[:type] || value_data["type"]
  data_value = value_data[:value] || value_data["value"]

  if value_type
    if parent.nil?
      set(key, value_type, data_value)
    else
      parent.add_child(Vra::RequestParameter.new(key, value_type, data_value))
    end
  else
    if parent.nil?
      p = set(key, nil, nil)
    else
      p = Vra::RequestParameter.new(key, nil, nil)
      parent.add_child(p)
    end

    value_data.each do |k, data|
      set_parameters(k, data, p)
    end
  end
end
to_h() click to toggle source
# File lib/vra/request_parameters.rb, line 84
def to_h
  hash = {}

  @entries.each do |k, v|
    hash.merge!(v.to_h)
  end

  hash
end
to_vra() click to toggle source
# File lib/vra/request_parameters.rb, line 94
def to_vra
  hash = {
    "data" => {},
  }

  @entries.each do |k, v|
    hash["data"].merge!(v.to_vra)
  end

  hash
end