Sha256: 3717aec6e0f7e746518c8a653dce256e2c963986c1cee870d7567d22705c4d70

Contents?: true

Size: 614 Bytes

Versions: 9

Compression:

Stored size: 614 Bytes

Contents

module WaterDrop
  module Aspects
    # After method execution aspect
    # @example Apply after aspect to a method
    #   WaterDrop::Aspects::AfterAspect.apply(
    #     ClassName,
    #     method: :run,
    #     topic: 'karafka_topic',
    #     message: ->(result) { "This is result of method run: #{result}" }
    #   )
    class AfterAspect < BaseAspect
      after options[:method], interception_arg: true do |interception, result, *args|
        options = interception.options
        interception.aspect.handle(self, options, args, options[:message], result)
        result
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
waterdrop-0.1.13 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.12 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.11 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.10 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.9 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.8 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.7 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.6 lib/water_drop/aspects/after_aspect.rb
waterdrop-0.1.5 lib/water_drop/aspects/after_aspect.rb