Sha256: 14c4c64e36f59559a3d4cb21234f68579ff32388c4e5807a76b1199b0b14379a

Contents?: true

Size: 557 Bytes

Versions: 1

Compression:

Stored size: 557 Bytes

Contents

require 'micro/observers/version'

module Micro
  module Observers
    require 'micro/observers/manager'

    module ClassMethods
      def call_observers(with: :call)
        proc do |object|
          Array(with)
            .each { |action| object.observers.call(action: action) }
        end
      end

      def notify_observers(with: :call)
        call_observers(with: with)
      end
    end

    def self.included(base)
      base.extend(ClassMethods)
    end

    def observers
      @observers ||= Observers::Manager.for(self)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
u-observers-0.2.0 lib/micro/observers.rb