class Preserves::Repository
Attributes
model_class[RW]
Public Class Methods
new(options={})
click to toggle source
# File lib/preserves/repository.rb, line 11 def initialize(options={}) self.model_class = options[:model] end
Public Instance Methods
fetch(primary_key_value)
click to toggle source
# File lib/preserves/repository.rb, line 15 def fetch(primary_key_value) select(fetch_query, primary_key_value).only end
Also aliased as: []
fetch!(primary_key_value)
click to toggle source
# File lib/preserves/repository.rb, line 19 def fetch!(primary_key_value) select(fetch_query, primary_key_value).only! end
map(result, relations={})
click to toggle source
# File lib/preserves/repository.rb, line 25 def map(result, relations={}) mapper.map(result, relations) end
map_one(result, relations={})
click to toggle source
# File lib/preserves/repository.rb, line 29 def map_one(result, relations={}) mapper.map_one(result, relations) end
mapping(&block)
click to toggle source
# File lib/preserves/repository.rb, line 33 def mapping(&block) @mapping ||= Mapping.new(self, model_class, &block) end
Protected Instance Methods
query(sql_string, *params)
click to toggle source
# File lib/preserves/repository.rb, line 39 def query(sql_string, *params) pg_result = data_store.exec_params(sql_string, params) SQL::ResultSet.new(pg_result) end
select(sql_string, *params)
click to toggle source
# File lib/preserves/repository.rb, line 44 def select(sql_string, *params) if params && params.last.is_a?(Hash) relations = params.pop else relations = {} end Selection.new(map(query(sql_string, *params), relations)) end
Private Instance Methods
data_store()
click to toggle source
NOTE: We’ll allow overriding this default on a per-repository basis later.
# File lib/preserves/repository.rb, line 60 def data_store Preserves.data_store end
fetch_query()
click to toggle source
# File lib/preserves/repository.rb, line 64 def fetch_query "SELECT * FROM \"#{mapping.table_name}\" WHERE #{mapping.primary_key} = $1" end
mapper()
click to toggle source
# File lib/preserves/repository.rb, line 55 def mapper @mapper ||= Mapper.new(@mapping) end