Sha256: 8a4097276b88e898a3f7d715e2400edc6bac5a8a744131bbb7bb9e1bc26b334b
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
module Hobo IncludeInSave = classy_module do attr_accessor :included_in_save validate :validate_included_in_save before_save :save_included after_save :clear_included_in_save def include_in_save(association, *records) self.included_in_save ||= Hash.new {|h, k| h[k] = []} included_in_save[association.to_sym].concat records end def validate_included_in_save if included_in_save included_in_save._?.each_pair do |association, records| added = false records.each do |record| # we want to call valid? on each one, but only add the error to self once record.with_acting_user(acting_user) do unless record.valid? unless added errors.add association, "..." added = true end end end end end end end def save_included if included_in_save included_in_save.each_pair do |association, records| records.each do |record| # save_without_validation means without transactions too record.with_acting_user(acting_user) { record.save_without_validation } end end end end def clear_included_in_save included_in_save._?.clear end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hobo-0.8.8 | lib/hobo/include_in_save.rb |
hobo-0.8.7 | lib/hobo/include_in_save.rb |
hobo-0.8.6 | lib/hobo/include_in_save.rb |