module Legatus::Repository

Public Instance Methods

find_and_init(filters, attributes=nil) click to toggle source
# File lib/legatus/repository.rb, line 5
def find_and_init(filters, attributes=nil)
  instance = self.find_one(filters)
  instance ||= self.new

  attributes = filters if attributes.blank?
  instance.assign_attributes(attributes) 

  return instance
end
find_one(filters) click to toggle source
# File lib/legatus/repository.rb, line 23
def find_one(filters)
  instance = filters.find { |f| self.find_by(f) } if filters.is_a?(Array)
  instance ||= self.find_by(filters)
  return instance
end
find_or_init(filters, attributes) click to toggle source
# File lib/legatus/repository.rb, line 15
def find_or_init(filters, attributes)
  instance = self.find_one(filters)
  return instance if instance.present?

  instance = self.new
  instance.assign_attributes(attributes) 
end