Sha256: 3ddc9c03556636981353a6268598306ff25017ef5f00d2e55397423928ee7d66

Contents?: true

Size: 758 Bytes

Versions: 4

Compression:

Stored size: 758 Bytes

Contents

# frozen_string_literal: true
require 'pusher-client'

module Agave
  module Watch
    class SiteChangeWatcher
      attr_reader :site_id

      PUSHER_API_KEY = '75e6ef0fe5d39f481626'

      def initialize(site_id)
        PusherClient.logger.level = Logger::WARN
        @site_id = site_id
        @socket = nil
      end

      def connect(&block)
        return if connected?

        @socket = PusherClient::Socket.new(PUSHER_API_KEY, secure: true)
        @socket.subscribe("site-#{site_id}")
        @socket.bind('site:change', &block)
        @socket.connect(true)

        self
      end

      def connected?
        @socket && @socket.connected
      end

      def disconnect!
        connected? && @socket.disconnect
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
agave-client-0.1.3 lib/agave/watch/site_change_watcher.rb
agave-client-0.1.2 lib/agave/watch/site_change_watcher.rb
agave-client-0.1.1 lib/agave/watch/site_change_watcher.rb
agave-client-0.1.0 lib/agave/watch/site_change_watcher.rb