Method: OneviewSDK::API500.resource_named

Defined in:
lib/oneview-sdk/resource/api500.rb

.resource_named(type, variant = @variant) ⇒ Class

Get resource class that matches the type given

Parameters:

  • type (String)

    Name of the desired class type

  • variant (String) (defaults to: @variant)

    Variant (C7000 or Synergy)

Returns:

  • (Class)

    Resource class or nil if not found



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/oneview-sdk/resource/api500.rb', line 24

def self.resource_named(type, variant = @variant)
  raise "API500 variant '#{variant}' is not supported! Try one of #{SUPPORTED_VARIANTS}" unless SUPPORTED_VARIANTS.include?(variant.to_s)
  new_type = type.to_s.downcase.gsub(/[ -_]/, '')
  api_module = OneviewSDK::API500.const_get(variant)
  api_module.constants.each do |c|
    klass = api_module.const_get(c)
    next unless klass.is_a?(Class)
    name = klass.name.split('::').last.downcase.delete('_').delete('-')
    return klass if new_type =~ /^#{name}[s]?$/
  end
  nil
end