class Clarc::RepositoryBase

Public Class Methods

all() click to toggle source
# File lib/clarc/repository_base.rb, line 4
def all
  wrap(persistance_class.all)
end
find(id) click to toggle source
# File lib/clarc/repository_base.rb, line 8
def find id
  wrap(persistance_class.find(id))
end
save(model) click to toggle source
# File lib/clarc/repository_base.rb, line 12
def save model
  persisted = persistance_class.new(model.to_hash)
  result = persisted.save
  model.id = persisted.id
  result
end

Protected Class Methods

model_class() click to toggle source
# File lib/clarc/repository_base.rb, line 32
def model_class
  "#{name.gsub('Repository', '')}".constantize
end
persistance_class() click to toggle source
# File lib/clarc/repository_base.rb, line 36
def persistance_class
  "#{name.gsub('Repository', '')}Persistance".constantize
end
wrap(result) click to toggle source
# File lib/clarc/repository_base.rb, line 21
def wrap result
  case result
  when Array, ActiveRecord::Relation
    result.map{ |p| model_class.new(p.attributes) }
  when ActiveRecord::Base
    model_class.new(result.attributes)
  else
    raise "unknown type - #{result.class}"
  end
end