module Trestle::Adapters::SequelAdapter

Public Instance Methods

build_instance(attrs={}, params={}) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 21
def build_instance(attrs={}, params={})
  model.new(attrs)
end
collection(params={}) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 13
def collection(params={})
  model.dataset
end
count(collection) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 41
def count(collection)
  collection.count
end
default_form_attributes() click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 55
def default_form_attributes
  default_attributes.reject do |attribute|
    primary_key?(attribute) || inheritance_column?(attribute)
  end
end
default_table_attributes() click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 49
def default_table_attributes
  default_attributes.reject do |attribute|
    inheritance_column?(attribute)
  end
end
delete_instance(instance, params={}) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 33
def delete_instance(instance, params={})
  instance.destroy
end
find_instance(params) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 17
def find_instance(params)
  model[params[:id]]
end
merge_scopes(scope, other) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 37
def merge_scopes(scope, other)
  scope.intersect(other)
end
save_instance(instance, params={}) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 29
def save_instance(instance, params={})
  instance.save
end
sort(collection, field, order) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 45
def sort(collection, field, order)
  collection.order(Sequel.send(order, field))
end
update_instance(instance, attrs, params={}) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 25
def update_instance(instance, attrs, params={})
  instance.set(attrs)
end

Protected Instance Methods

default_attributes() click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 62
def default_attributes
  model.db_schema.map do |column_name, column_attrs|
    if column_name.to_s.end_with?("_id") && (name = column_name.to_s.sub(/_id$/, '')) && (reflection = model.association_reflection(name.to_sym))
      Attribute::Association.new(column_name, class: -> { reflection.associated_class }, name: name)
    else
      Attribute.new(column_name, column_attrs[:type])
    end
  end
end
inheritance_column?(attribute) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 76
def inheritance_column?(attribute)
  model.respond_to?(:sti_key) && attribute.name.to_s == model.sti_key.to_s
end
primary_key?(attribute) click to toggle source
# File lib/trestle/adapters/sequel_adapter.rb, line 72
def primary_key?(attribute)
  attribute.name.to_s == model.primary_key.to_s
end