module Sinja::Sequel::Core
Public Class Methods
included(_)
click to toggle source
# File lib/sinja/sequel/core.rb, line 48 def self.included(_) abort "You must `prepend' Sinja::Sequel::Core, not `include' it!" end
prepended(base)
click to toggle source
# File lib/sinja/sequel/core.rb, line 13 def self.prepended(base) base.sinja.configure do |c| c.conflict_exceptions << ::Sequel::ConstraintViolation c.not_found_exceptions << ::Sequel::NoMatchingRow c.validation_exceptions << ::Sequel::ValidationFailed c.validation_formatter = proc do |e| e.errors.keys.each do |column| if assocs = e.model.class.autoreloading_associations[column] # copy errors attached to a FK column to the relevant association assocs.each do |assoc| e.errors[assoc] = e.errors[column] end e.errors.delete(column) end end typeof = e.model.class.associations .map { |k| [k, :relationships] }.to_h .tap { |h| h.default = :attributes } e.errors.flat_map do |ee| next [[nil, ee]] if ee.is_a?(::Sequel::LiteralString) key, messages = *ee Array(messages).map do |message| [key, "#{key} #{message}", typeof[key]] end end end end base.prepend(Pagination) if ::Sequel::Model.db.dataset.respond_to?(:paginate) end
Public Instance Methods
after_create()
click to toggle source
# File lib/sinja/sequel/core.rb, line 68 def after_create resource.save(:validate=>false) resource.pk end
serialize_linkage(*, **options)
click to toggle source
Calls superclass method
# File lib/sinja/sequel/core.rb, line 73 def serialize_linkage(*, **options) options[:skip_collection_check] = true super end
serialize_model(*, **options)
click to toggle source
Calls superclass method
# File lib/sinja/sequel/core.rb, line 78 def serialize_model(*, **options) options[:skip_collection_check] = true super end
sort(collection, fields)
click to toggle source
# File lib/sinja/sequel/core.rb, line 58 def sort(collection, fields) collection.order(*fields.map { |k, v| ::Sequel.send(v, k) }) end
validate!()
click to toggle source
# File lib/sinja/sequel/core.rb, line 64 def validate! raise ::Sequel::ValidationFailed, resource unless resource.valid? end