module Aspector::Base::ClassMethods
Public Instance Methods
advices()
click to toggle source
# File lib/aspector/base_class_methods.rb, line 41 def advices @advices ||= [] end
apply(target, *rest)
click to toggle source
# File lib/aspector/base_class_methods.rb, line 49 def apply target, *rest options = rest.last.is_a?(Hash) ? rest.pop : {} targets = rest.unshift target targets.map do |target| logger.info 'apply', target, options.inspect instance = new instance.send :apply, target, options end end
default_options()
click to toggle source
# File lib/aspector/base_class_methods.rb, line 45 def default_options @default_options ||= {} end
disable()
click to toggle source
# File lib/aspector/base_class_methods.rb, line 26 def disable logger.info 'disable-aspect' send :define_method, :disabled? do true end end
enable()
click to toggle source
# File lib/aspector/base_class_methods.rb, line 18 def enable logger.info 'enable-aspect' send :define_method, :disabled? do false end end
logger()
click to toggle source
if ENV is set, use it else try to load logem and use Logem::Logger else use built in logger
# File lib/aspector/base_class_methods.rb, line 37 def logger @logger ||= Logging.get_logger(self) end
Private Instance Methods
_create_advice_(meta_data, klass_or_module, *methods, &block)
click to toggle source
# File lib/aspector/base_class_methods.rb, line 83 def _create_advice_ meta_data, klass_or_module, *methods, &block methods.flatten! options = meta_data.default_options.clone options.merge!(methods.pop) if methods.last.is_a? Hash if meta_data.advice_type == Aspector::Advice::RAW raise "Bad raw advice - code block is required" unless block_given? with_method = nil else with_method = methods.pop unless block_given? end # Convert symbols to strings to avoid inconsistencies methods.size.times do |i| methods[i] = methods[i].to_s if methods[i].is_a? Symbol end methods << DeferredOption.new(:method) << DeferredOption.new(:methods) if methods.empty? Aspector::Advice.new(self, meta_data.advice_type, Aspector::MethodMatcher.new(*methods), with_method, options, &block) end
_deferred_logics_()
click to toggle source
# File lib/aspector/base_class_methods.rb, line 79 def _deferred_logics_ @deferred_logics ||= [] end
default(options)
click to toggle source
# File lib/aspector/base_class_methods.rb, line 62 def default options @default_options ||= {} @default_options.merge!(options) end
options()
click to toggle source
# File lib/aspector/base_class_methods.rb, line 75 def options DeferredOption.new end
target(code = nil, &block)
click to toggle source
# File lib/aspector/base_class_methods.rb, line 67 def target code = nil, &block raise ArgumentError.new('No code or block is passed.') unless code or block_given? logic = DeferredLogic.new(code || block) _deferred_logics_ << logic logic end