Module: Angarium

Defined in:
lib/angarium.rb,
lib/angarium/client.rb,
lib/angarium/engine.rb,
lib/angarium/version.rb,
lib/angarium/dispatch.rb,
lib/angarium/signature.rb,
app/models/angarium/event.rb,
lib/angarium/configuration.rb,
lib/angarium/event_matcher.rb,
lib/angarium/address_policy.rb,
app/models/angarium/delivery.rb,
app/models/angarium/endpoint.rb,
app/jobs/angarium/deliver_job.rb,
app/policies/angarium/api/policy.rb,
app/jobs/angarium/application_job.rb,
app/models/angarium/delivery_attempt.rb,
app/models/angarium/application_record.rb,
app/helpers/angarium/application_helper.rb,
app/controllers/angarium/api/not_authorized.rb,
app/controllers/angarium/api/base_controller.rb,
app/validators/angarium/endpoint_url_validator.rb,
lib/generators/angarium/policy/policy_generator.rb,
app/controllers/angarium/api/attempts_controller.rb,
app/controllers/angarium/api/endpoints_controller.rb,
lib/generators/angarium/install/install_generator.rb,
app/controllers/angarium/api/deliveries_controller.rb,
app/controllers/angarium/api/unpermitted_parameter.rb,
lib/generators/angarium/migrations/migrations_generator.rb

Defined Under Namespace

Modules: AddressPolicy, Api, ApplicationHelper, Dispatch, EventMatcher, Generators, Signature Classes: ApplicationJob, ApplicationRecord, Client, Configuration, DeliverJob, Delivery, DeliveryAttempt, Endpoint, EndpointUrlValidator, Engine, Event

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configObject



12
13
14
# File 'lib/angarium.rb', line 12

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



16
17
18
# File 'lib/angarium.rb', line 16

def configure
  yield config
end

.dispatch(event_name, payload, owner:) ⇒ Object



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

def dispatch(event_name, payload, owner:)
  Dispatch.call(event_name, payload, owner: owner)
end

.notify(callback_name, *args) ⇒ Object

Invoke a configured notification callback (e.g. on_delivery_exhausted, on_endpoint_deactivated). A callback raising must never break the delivery pipeline, so errors are logged and swallowed.



35
36
37
38
39
40
41
42
# File 'lib/angarium.rb', line 35

def notify(callback_name, *args)
  callback = config.public_send(callback_name)
  return unless callback

  callback.call(*args)
rescue => e
  Rails.logger.error { "[Angarium] #{callback_name} callback raised: #{e.class}: #{e.message}" }
end

.primary_key_typeObject

Primary key type for Angarium's own tables. Explicit config wins; otherwise respect the app's global generators setting; otherwise Rails' default (bigint).



22
23
24
25
26
# File 'lib/angarium.rb', line 22

def primary_key_type
  config.primary_key_type ||
    Rails.application.config.generators.options.dig(:active_record, :primary_key_type) ||
    :bigint
end