Skip to content

Commit

Permalink
Added delegation for class method
Browse files Browse the repository at this point in the history
  • Loading branch information
paulnsorensen committed Jan 30, 2014
1 parent 73c599a commit 9f0d88c
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions lib/lifesaver/notification/model_additions.rb
Expand Up @@ -28,21 +28,23 @@ def notification_callbacks
def self.included(base)
base.class_attribute :notifiable_associations
base.notifiable_associations = NotifiableAssociations.new
base.delegate :notifiable_associations, to: :class
base.class_attribute :dependent_associations
base.dependent_associations = DependentAssociations.new(base)
base.delegate :dependent_associations, to: :class
base.extend(ClassMethods)
end

def associations_to_notify
models = []
self.class.notifiable_associations.on_notify.each do |association|
notifiable_associations.on_notify.each do |association|
models |= models_for_association(association)
end
models
end

def needs_to_notify?
self.class.notifiable_associations.any_to_notify?
notifiable_associations.any_to_notify?
end

def models_for_association(assoc)
Expand Down Expand Up @@ -73,14 +75,14 @@ def update_associations
def load_associations(operation)
return @loaded_associations unless @loaded_associations.nil?
@loaded_associations = []
to_skip = operation == :destroy ? self.class.dependent_associations.fetch : []
to_skip = operation == :destroy ? dependent_associations.fetch : []
to_load = associations_to_load(:on_change, to_skip)
to_load.each { |key| @loaded_associations |= models_for_association(key) }
@loaded_associations
end

def associations_to_load(key, associations_to_skip)
associations = self.class.notifiable_associations.public_send(key)
associations = notifiable_associations.public_send(key)
associations - associations_to_skip
end

Expand Down

0 comments on commit 9f0d88c

Please sign in to comment.