Module: Archipelago

Defined in:
lib/archipelago.rb,
lib/archipelago/action.rb,
lib/archipelago/engine.rb,
lib/archipelago/context.rb,
lib/archipelago/registry.rb,
lib/archipelago/resolver.rb,
lib/archipelago/response.rb,
lib/archipelago/broadcasts.rb,
lib/archipelago/params_dsl.rb,
lib/archipelago/view_helper.rb,
lib/archipelago/test_helpers.rb,
lib/archipelago/configuration.rb,
lib/archipelago/cancan_adapter.rb,
lib/archipelago/pundit_adapter.rb,
lib/archipelago/security/origin_validator.rb,
lib/archipelago/security/redirect_validator.rb,
app/controllers/archipelago/islands_controller.rb,
app/controllers/archipelago/application_controller.rb,
lib/generators/archipelago/island/island_generator.rb,
lib/generators/archipelago/install/install_generator.rb,
lib/generators/archipelago/install/react/react_generator.rb

Defined Under Namespace

Modules: Broadcasts, CanCanAdapter, Generators, ParamsDSL, PunditAdapter, Response, Security, TestHelpers, ViewHelper Classes: Action, ApplicationController, Configuration, Context, Engine, Error, Forbidden, InvalidOrigin, InvalidRedirect, IslandsController, MissingAuthorization, Registry, ResolutionError, Resolver

Class Method Summary collapse

Class Method Details

.authorize_stream?(connection:, stream_name:, params: {}) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
54
55
# File 'lib/archipelago.rb', line 48

def authorize_stream?(connection:, stream_name:, params: {})
  authorizer = configuration.stream_authorizer
  return true unless configuration.require_stream_authorization || authorizer

  return false if configuration.require_stream_authorization && authorizer.nil?

  authorizer.call(connection: connection, stream_name: stream_name, params: params)
end

.broadcast(stream_name, props:, version: next_version) ⇒ Object



44
45
46
# File 'lib/archipelago.rb', line 44

def broadcast(stream_name, props:, version: next_version)
  Broadcasts.broadcast(stream_name, props: props, version: version)
end

.configurationObject



24
25
26
# File 'lib/archipelago.rb', line 24

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



20
21
22
# File 'lib/archipelago.rb', line 20

def configure
  yield(configuration)
end

.instrument(event, payload = {}, &block) ⇒ Object



57
58
59
# File 'lib/archipelago.rb', line 57

def instrument(event, payload = {}, &block)
  ActiveSupport::Notifications.instrument(event, payload, &block)
end

.map(mapping) ⇒ Object



36
37
38
# File 'lib/archipelago.rb', line 36

def map(mapping)
  mapping.each { |key, value| registry.map(key, value) }
end

.next_versionObject



40
41
42
# File 'lib/archipelago.rb', line 40

def next_version
  configuration.version_source.call
end

.registryObject



32
33
34
# File 'lib/archipelago.rb', line 32

def registry
  @registry ||= Registry.new
end

.reset_configuration!Object



28
29
30
# File 'lib/archipelago.rb', line 28

def reset_configuration!
  @configuration = Configuration.new
end