class EasyCallbacks::Repositories::BaseRepository

Attributes

list[RW]

Public Class Methods

new(*args) click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 8
def initialize(*args); self.list = [] end

Public Instance Methods

add(*args, &block) click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 12
def add(*args, &block)
  unless exists? *args
    model_instance = block_given? ? model.new(*args, &block) : model.new(*args)
    self.list.push(model_instance)
    model_instance
  end
end
exists?(*args) click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 20
def exists?(*args); not find(*args).nil? end
find(*args) click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 22
def find(*args); list.find &find_block(*args) end
find_or_add(*args, &block) click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 10
def find_or_add(*args, &block); find(*args) || add(*args, &block) end

Protected Instance Methods

find_block(*args) click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 26
def find_block(*args)
  raise NotImplementedError.new("find_block@#{self.class} must overwrite find_block@#{self.class.superclass}")
end
model() click to toggle source
# File lib/easy_callbacks/repositories/base_repository.rb, line 30
def model
  raise NotImplementedError.new("model@#{self.class} must overwrite model@#{self.class.superclass}")
end