Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/softlayer/object_mask_helpers.rb

Overview

Ruby Hash Class

Direct Known Subclasses

SoftLayer::ObjectFilter

Instance Method Summary collapse

Instance Method Details

#__sl_object_mask_properties_for_keysObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/softlayer/object_mask_helpers.rb', line 42

def __sl_object_mask_properties_for_keys
  key_strings = [];

  each do |key, value|
    return "" if !value

    string_for_key = key.to_sl_object_mask_property

    if value.kind_of?(String) || value.kind_of?(Symbol) then
      string_for_key = "#{string_for_key}.#{value.to_sl_object_mask_property}"
    end

    if value.kind_of?(Array) || value.kind_of?(Hash) then
      value_string = value.to_sl_object_mask_property
      if value_string && !value_string.empty?
        string_for_key = "#{string_for_key}[#{value_string}]"
      end
    end

    key_strings.push(string_for_key)
  end

  key_strings
end

#__valid_root_property_key?(key_string) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/softlayer/object_mask_helpers.rb', line 25

def __valid_root_property_key?(key_string)
  return key_string == "mask" || (0 == (key_string =~ /\Amask\([a-z][a-z0-9_]*\)\z/i))
end

#to_sl_object_maskObject

Raises:

  • (RuntimeError)


29
30
31
32
33
34
35
# File 'lib/softlayer/object_mask_helpers.rb', line 29

def to_sl_object_mask()
  raise RuntimeError, "An object mask must contain properties" if empty?
  raise RuntimeError, "An object mask must start with root properties" if keys().find { |key| !__valid_root_property_key?(key) }

  key_strings = __sl_object_mask_properties_for_keys();
  key_strings.count > 1 ? "[#{key_strings.join(',')}]" : "#{key_strings[0]}"
end

#to_sl_object_mask_propertyObject



37
38
39
40
# File 'lib/softlayer/object_mask_helpers.rb', line 37

def to_sl_object_mask_property()
  key_strings = __sl_object_mask_properties_for_keys();
  "#{key_strings.join(',')}"
end