module Sinja::Sequel::Resource
Public Instance Methods
has_many(rel, try_convert=:to_i, &block)
click to toggle source
Calls superclass method
# File lib/sinja/sequel.rb, line 78 def has_many(rel, try_convert=:to_i, &block) super(rel) do fetch do resource.send("#{rel}_dataset") end clear(:sideload_on=>:update) do resource.send("remove_all_#{rel}") end replace(:sideload_on=>:update) do |rios| add_remove(rel, rios, try_convert) end merge(:sideload_on=>:create) do |rios| add_missing(rel, rios, try_convert) end subtract do |rios| remove_present(rel, rios, try_convert) end instance_eval(&block) if block end end
has_one(rel, try_convert=:to_i, &block)
click to toggle source
Calls superclass method
# File lib/sinja/sequel.rb, line 57 def has_one(rel, try_convert=:to_i, &block) super(rel) do pluck do resource.send(rel) end prune(:sideload_on=>:update) do resource.send("#{rel}=", nil) resource.save_changes(:validate=>!sideloaded?) end graft(:sideload_on=>%i[create update]) do |rio| klass = resource.class.association_reflection(rel).associated_class resource.send("#{rel}=", klass.with_pk!(proc(&try_convert).(rio[:id]))) resource.save_changes(:validate=>!sideloaded?) end instance_eval(&block) if block end end