Sha256: ff20b0efd241dc027eae858299c51edb42d39e675196a3c89bbec5d5792ab758

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require 'loco-rails-core'

require 'loco/broadcaster'
require 'loco/config'
require 'loco/emitter'
require 'loco/rails/engine'
require 'loco/helpers'
require 'loco/hub'
require 'loco/permissions_presenter'
require 'loco/sender'
require 'loco/ws_connection_checker'
require 'loco/ws_connection_manager'
require 'loco/ws_connection_finder'
require 'loco/ws_connection_identifier'
require 'loco/ws_connection_storage'

module Loco
  module_function

  def configure
    Config::CONFIGURATION.new.tap do |config|
      yield config
      Config.configure config
    end
  end

  def emit(obj, event = nil, opts = {})
    Broadcaster.(
      obj,
      event,
      payload: opts[:payload] || opts[:data],
      recipients: opts[opts[:for] ? :for : :to]
    )
  end

  def emit_to(recipient_s, data)
    Sender.(recipient_s, data)
  end

  def add_hub(name, members = [])
    Hub.set(name, members)
  end

  def get_hub(name)
    Hub.get(name)
  end

  def del_hub(name)
    hub = Hub.get(name)
    return false if hub.nil?

    hub.destroy
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
loco-rails-6.2.0 lib/loco-rails.rb
loco-rails-6.1.0 lib/loco-rails.rb