class Djoini::Crud

Holds basic crud operaions. Workds like wrapper above Table.

Attributes

relation[RW]

Public Class Methods

new(relation) click to toggle source
# File lib/djoini/crud.rb, line 4
def initialize(relation)
  self.relation = relation
end

Public Instance Methods

all() click to toggle source
# File lib/djoini/crud.rb, line 37
def all
  table.all.map { |values| relation.new_record(values) }
end
create(values) click to toggle source
# File lib/djoini/crud.rb, line 8
def create(values)
  id = table.insert(values)[0]['id'].to_i

  find(id)
end
delete_all() click to toggle source
# File lib/djoini/crud.rb, line 41
def delete_all
  table.delete_all
end
destroy(id) click to toggle source
# File lib/djoini/crud.rb, line 33
def destroy(id)
  table.delete(table.primary_key => id)
end
find(id) click to toggle source
# File lib/djoini/crud.rb, line 19
def find(id)
  values = table.where(table.primary_key => id).first

  return nil unless values

  relation.new_record(values)
end
update(id, values) click to toggle source
# File lib/djoini/crud.rb, line 14
def update(id, values)
  table.update(where: { table.primary_key => id },
               fields: values)
end
where(params) click to toggle source
# File lib/djoini/crud.rb, line 27
def where(params)
  rows = table.where(params)

  rows.map { |values| relation.new_record(values) }
end

Private Instance Methods

table() click to toggle source
# File lib/djoini/crud.rb, line 49
def table
  relation.table
end