Sha256: aff546fef393c787ee85535846e629135323ddc6b3e5957f655fdb695f0cefd8

Contents?: true

Size: 559 Bytes

Versions: 66

Compression:

Stored size: 559 Bytes

Contents

module Cobrato
  module Resources
    module Hooks

      def notify(*hooked_methods)
        apply_hooks(hooked_methods.flatten)
      end

      private

      def apply_hooks(hooked_methods)
        hooked_methods.each do |method|
          alias_method "#{method}_without_notifier", method

          define_method method do |*args|
            result = send("#{method}_without_notifier", *args)
            publish("cobrato.#{base_klass.downcase}.#{method}", result, args.flatten)
            result
          end
        end
      end

    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
cobrato-client-1.1.7 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.6 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.5 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.4 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.3 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.2 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.1 lib/cobrato/resources/hooks.rb
cobrato-client-1.1.0 lib/cobrato/resources/hooks.rb
cobrato-client-1.0.1 lib/cobrato/resources/hooks.rb
cobrato-client-1.0.0 lib/cobrato/resources/hooks.rb
cobrato-client-0.27.0 lib/cobrato/resources/hooks.rb
cobrato-client-0.26.0 lib/cobrato/resources/hooks.rb
cobrato-client-0.25.0 lib/cobrato/resources/hooks.rb
cobrato-client-0.24.1 lib/cobrato/resources/hooks.rb
cobrato-client-0.24.0 lib/cobrato/resources/hooks.rb
cobrato-client-0.23.0 lib/cobrato/resources/hooks.rb
cobrato-client-0.23.0.beta12 lib/cobrato/resources/hooks.rb
cobrato-client-0.23.0.beta11 lib/cobrato/resources/hooks.rb
cobrato-client-0.23.0.beta10 lib/cobrato/resources/hooks.rb
cobrato-client-0.23.0.beta9 lib/cobrato/resources/hooks.rb