# File lib/trestle/adapters/sequel_adapter.rb, line 72 def primary_key?(attribute) attribute.name.to_s == model.primary_key.to_s end
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