class KuberKit::Core::Store

Constants

AlreadyAddedError
NotFoundError

Attributes

object_class_name[R]

Public Class Methods

new(object_class_name) click to toggle source
# File lib/kuber_kit/core/store.rb, line 7
def initialize(object_class_name)
  @object_class_name = object_class_name
end

Public Instance Methods

add(item_name, item) click to toggle source
# File lib/kuber_kit/core/store.rb, line 11
def add(item_name, item)
  unless item.is_a?(object_class_name)
    raise ArgumentError.new("#{self.object_class_name}: should be an instance of #{object_class_name}, got: #{item.inspect}")
  end

  unless items[item_name].nil?
    raise AlreadyAddedError, "#{self.object_class_name}: item with name #{item_name} was already added"
  end

  items[item_name] = item
end
exists?(name) click to toggle source
# File lib/kuber_kit/core/store.rb, line 45
def exists?(name)
  !items[name].nil?
end
get(item_name) click to toggle source
# File lib/kuber_kit/core/store.rb, line 23
def get(item_name)
  item = items[item_name]

  if item.nil?
    raise NotFoundError, "#{self.object_class_name}: item '#{item_name}' not found"
  end

  item
end
items() click to toggle source
# File lib/kuber_kit/core/store.rb, line 33
def items
  @items ||= {}
end
reset!() click to toggle source
# File lib/kuber_kit/core/store.rb, line 37
def reset!
  @items = {}
end
size() click to toggle source
# File lib/kuber_kit/core/store.rb, line 41
def size
  items.count
end