class Bodhi::Enumeration

Attributes

name[R]
values[R]

Public Class Methods

cache() click to toggle source

Returns a Hash of all Bodhi::Enumerations in the cache

Bodhi::Enumerations.cache # => [#<Bodhi::Enumeration:0x007fbff403e808>, #<Bodhi::Enumeration:0x007fbff403e808>, ...]
# File lib/bodhi-slam/enumerations.rb, line 51
def self.cache
  @cache ||= Hash.new
end
find_all(context) click to toggle source

Gets all Bodhi::Enumerations from a given context and adds them to the Bodhi::Enumeration cache

Bodhi::Enumeration.find_all(context) # => [#<Bodhi::Enumeration:0x007fbff403e808>, #<Bodhi::Enumeration:0x007fbff403e808>, ...]
# File lib/bodhi-slam/enumerations.rb, line 31
def self.find_all(context)
  if context.invalid?
    raise Bodhi::ContextErrors.new(context.errors.messages), context.errors.to_a.to_s
  end

  result = context.connection.get do |request|
    request.url "/#{context.namespace}/enums"
    request.headers[context.credentials_header] = context.credentials
  end

  if result.status != 200
    raise Bodhi::ApiErrors.new(body: result.body, status: result.status), "status: #{result.status}, body: #{result.body}"
  end

  result.body.collect{ |enum| Bodhi::Enumeration.new(enum) }
end
new(params) click to toggle source
# File lib/bodhi-slam/enumerations.rb, line 5
def initialize(params)
  # same as symbolize_keys!
  params = params.reduce({}) do |memo, (k, v)| 
    memo.merge({ k.to_sym => v})
  end

  @name = params[:name]
  @values = params[:values]
  self.class.cache[@name.to_sym] = self

  @values = @values.map do |value|
    if value.is_a? Hash
      # same as symbolize_keys!
      value = value.reduce({}) do |memo, (k, v)| 
        memo.merge({ k.to_sym => v})
      end
    else
      value
    end
  end
end