class AfterDo::Loader::AspectApplier
Attributes
aspect[R]
Public Class Methods
new(aspect)
click to toggle source
# File lib/after_do/loader/aspect_applier.rb, line 4 def initialize(aspect) @aspect = aspect end
Public Instance Methods
apply()
click to toggle source
# File lib/after_do/loader/aspect_applier.rb, line 8 def apply aspect.advices.each do |advice| advice.targets.each do |target| target.klass.each do |target_klass| extend_and_apply( target_klass, target.target_methods, aspect, advice ) end end end end
Protected Instance Methods
extend_and_apply(target_klass, methods, aspect, advice)
click to toggle source
# File lib/after_do/loader/aspect_applier.rb, line 24 def extend_and_apply(target_klass, methods, aspect, advice) target_klass.extend(AfterDo) methods.each do |method| advice.names.each do |advice_name| aspect.klass.new(target_klass).send(advice_name, method) end end rescue raise Errors::CannotApplyAspect end