Class: Vra::RequestParameters

Inherits:
Object
  • Object
show all
Defined in:
lib/vra/request_parameters.rb

Instance Method Summary collapse

Constructor Details

#initializeRequestParameters

Returns a new instance of RequestParameters.



21
22
23
# File 'lib/vra/request_parameters.rb', line 21

def initialize
  @entries = {}
end

Instance Method Details

#all_entriesObject



80
81
82
# File 'lib/vra/request_parameters.rb', line 80

def all_entries
  @entries.values
end

#delete(key) ⇒ Object



76
77
78
# File 'lib/vra/request_parameters.rb', line 76

def delete(key)
  @entries.delete(key)
end

#set(key, type, value) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 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) ⇒ Object

Note:
  • the value_data must have type and value property in the hash

Parameters:

  • key (String)
    • the name of the key

  • value_data (Hash)
    • the data of the key name



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 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_hObject



84
85
86
87
88
89
90
91
92
# 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_vraObject



94
95
96
97
98
99
100
101
102
103
104
# File 'lib/vra/request_parameters.rb', line 94

def to_vra
  hash = {
    'inputs': {}
  }

  @entries.each do |_, v|
    hash[:inputs].merge!(v.to_vra)
  end

  hash
end