def apply(target, options = {})
      Interception.new(
        self,
        target,
        self.class.storage.default_options.merge(options)
      ).apply
    end
def apply(target, options = {})
      Interception.new(
        self,
        target,
        self.class.storage.default_options.merge(options)
      ).apply
    end
Applies aspect instance into a given target class/module/instance
 @param target [Class] any object (or class or module) to apply this aspect
 @param options [Hash] set of options that we can pass to the aspect that will be applied
 @return [Aspector::Interception] applied interception
 @example Apply aspect to a ExampleClass
   aspect.apply(ExampleClass)
 @example Apply aspect to an instance
   aspect.apply(object, , method: :run)
 @example Apply aspect to a ExtendingModule
   aspect.apply(ExtendingModule, , method: :run)