module LunaPark::Extensions::Repositories::Postgres::Read

Public Instance Methods

all() click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 30
def all
  read_all(dataset.order { created_at.desc })
end
count() click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 26
def count
  dataset.count
end
find(pk_value, for_update: false) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 13
def find(pk_value, for_update: false)
  ds = dataset.where(primary_key => pk_value)
  read_one(ds, for_update: for_update)
end
find!(pk_value, for_update: false) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 8
def find!(pk_value, for_update: false)
  ds = dataset.where(primary_key => pk_value)
  read_one!(ds, for_update: for_update, not_found_meta: pk_value)
end
last() click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 34
def last
  to_entity from_row dataset.order(:created_at).last
end
lock(pk_value) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 22
def lock(pk_value)
  dataset.for_update.select(primary_key).where(primary_key => pk_value).first ? true : false
end
lock!(pk_value) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 18
def lock!(pk_value)
  lock(pk_value) || raise(Errors::NotFound, "#{short_class_name} (#{pk_value})")
end

Private Instance Methods

read_all(dataset) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 52
def read_all(dataset)
  to_entities from_rows(dataset)
end
read_one(dataset, for_update: false) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 46
def read_one(dataset, for_update: false)
  dataset = dataset.for_update if for_update
  row = dataset.first
  to_entity from_row(row)
end
read_one!(dataset, for_update: false, not_found_meta:) click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 40
def read_one!(dataset, for_update: false, not_found_meta:)
  read_one(dataset, for_update: for_update).tap do |entity|
    raise Errors::NotFound, "#{short_class_name} (#{not_found_meta})" if entity.nil?
  end
end
short_class_name() click to toggle source
# File lib/luna_park/extensions/repositories/postgres/read.rb, line 56
def short_class_name
  @short_class_name ||= self.class.name[/::(\w+)\z/, 1]
end