module Netfira::WebConnect::Model::Relation::Events
Private Instance Methods
dispatch_create() { || ... }
click to toggle source
# File lib/netfira/web_connect/model/relation/events.rb, line 13 def dispatch_create dispatch_relation_event(:add, :to) { yield } end
dispatch_destroy() { || ... }
click to toggle source
# File lib/netfira/web_connect/model/relation/events.rb, line 17 def dispatch_destroy dispatch_relation_event(:remove, :from) { yield } end
dispatch_relation_event(action, preposition) { || ... }
click to toggle source
# File lib/netfira/web_connect/model/relation/events.rb, line 21 def dispatch_relation_event(action, preposition) [records, records.reverse].each do |records| event_name = ("#{action}_%s_#{preposition}_%s" % records.map{ |record| record.class.single_name }).to_sym named_event_args = [event_name].concat(records) event_args = [action].concat(records) records[0].as_readonly do records[1].as_readonly do dispatch_event :before, *named_event_args dispatch_event :before, *event_args dispatch_event :around, *named_event_args do dispatch_event :around, *event_args do records[0].as_readwrite { records[1].as_readwrite { yield } } end end dispatch_event [:on, :after], *named_event_args dispatch_event [:on, :after], *event_args end end end end