Sha256: d8520ae098b1d1e2a149c3cdf9d794df7f12601c540f8d706229d8c9287808ce

Contents?: true

Size: 755 Bytes

Versions: 1

Compression:

Stored size: 755 Bytes

Contents

require "singleton"

module SubPub
  class Register
    include Singleton

    attr_accessor :enabled

    def initialize
      @enabled = true
      super
    end

    class << self
      def enable
        instance.enabled = true
      end

      def disable
        instance.enabled = false
      end

      def enabled?
        if instance.enabled.nil?
          instance.enabled = true
        end

        instance.enabled
      end

      def disabled?
        !instance.enabled
      end

      def publish(*args, &block)
        return if disabled?

        ActiveSupport::Notifications.publish(*args, &block)
      end

      def subscribe(*args, &block)
        ActiveSupport::Notifications.subscribe(*args, &block)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sub_pub-0.0.3 lib/sub_pub/register.rb