Module: StandardId::Events
- Includes:
- Definitions
- Defined in:
- lib/standard_id/events.rb,
lib/standard_id/events/event.rb,
lib/standard_id/events/definitions.rb,
lib/standard_id/events/subscribers/base.rb,
lib/standard_id/events/subscribers/logging_subscriber.rb,
lib/standard_id/events/subscribers/account_status_subscriber.rb,
lib/standard_id/events/subscribers/account_locking_subscriber.rb,
lib/standard_id/events/subscribers/passwordless_delivery_subscriber.rb
Defined Under Namespace
Modules: Definitions, Subscribers Classes: Event
Constant Summary collapse
- NAMESPACE =
Event namespace prefix for all StandardId events
"standard_id"
Constants included from Definitions
Definitions::ACCOUNT_ACTIVATED, Definitions::ACCOUNT_CREATED, Definitions::ACCOUNT_CREATING, Definitions::ACCOUNT_DEACTIVATED, Definitions::ACCOUNT_EVENTS, Definitions::ACCOUNT_LOCKED, Definitions::ACCOUNT_STATUS_CHANGED, Definitions::ACCOUNT_UNLOCKED, Definitions::ACCOUNT_VERIFIED, Definitions::ALL_EVENTS, Definitions::AUTHENTICATION_ATTEMPT_STARTED, Definitions::AUTHENTICATION_EVENTS, Definitions::AUTHENTICATION_FAILED, Definitions::AUTHENTICATION_SUCCEEDED, Definitions::CREDENTIAL_CLIENT_SECRET_CREATED, Definitions::CREDENTIAL_CLIENT_SECRET_REVOKED, Definitions::CREDENTIAL_CLIENT_SECRET_ROTATED, Definitions::CREDENTIAL_EVENTS, Definitions::CREDENTIAL_PASSWORD_CHANGED, Definitions::CREDENTIAL_PASSWORD_CREATED, Definitions::CREDENTIAL_PASSWORD_RESET_COMPLETED, Definitions::CREDENTIAL_PASSWORD_RESET_INITIATED, Definitions::IDENTIFIER_CREATED, Definitions::IDENTIFIER_EVENTS, Definitions::IDENTIFIER_LINKED, Definitions::IDENTIFIER_VERIFICATION_FAILED, Definitions::IDENTIFIER_VERIFICATION_STARTED, Definitions::IDENTIFIER_VERIFICATION_SUCCEEDED, Definitions::OAUTH_AUTHORIZATION_DENIED, Definitions::OAUTH_AUTHORIZATION_GRANTED, Definitions::OAUTH_AUTHORIZATION_REQUESTED, Definitions::OAUTH_CODE_CONSUMED, Definitions::OAUTH_EVENTS, Definitions::OAUTH_REFRESH_TOKEN_REUSE_DETECTED, Definitions::OAUTH_TOKEN_ISSUED, Definitions::OAUTH_TOKEN_ISSUING, Definitions::OAUTH_TOKEN_REFRESHED, Definitions::OAUTH_TOKEN_REVOKED, Definitions::OTP_VALIDATED, Definitions::OTP_VALIDATION_FAILED, Definitions::PASSWORDLESS_ACCOUNT_CREATED, Definitions::PASSWORDLESS_CODE_FAILED, Definitions::PASSWORDLESS_CODE_GENERATED, Definitions::PASSWORDLESS_CODE_REQUESTED, Definitions::PASSWORDLESS_CODE_SENT, Definitions::PASSWORDLESS_CODE_VERIFIED, Definitions::PASSWORDLESS_EVENTS, Definitions::PASSWORD_VALIDATED, Definitions::PASSWORD_VALIDATION_FAILED, Definitions::SECURITY_EVENTS, Definitions::SESSION_CREATED, Definitions::SESSION_CREATING, Definitions::SESSION_EVENTS, Definitions::SESSION_EXPIRED, Definitions::SESSION_REFRESHED, Definitions::SESSION_REVOKED, Definitions::SESSION_VALIDATED, Definitions::SESSION_VALIDATING, Definitions::SOCIAL_ACCOUNT_CREATED, Definitions::SOCIAL_ACCOUNT_LINKED, Definitions::SOCIAL_AUTH_COMPLETED, Definitions::SOCIAL_AUTH_STARTED, Definitions::SOCIAL_CALLBACK_RECEIVED, Definitions::SOCIAL_EVENTS, Definitions::SOCIAL_LINK_BLOCKED, Definitions::SOCIAL_USER_INFO_FETCHED
Class Method Summary collapse
-
.namespaced_event_name(event_name) ⇒ String
Get the full namespaced event name.
-
.publish(event_name, payload = {}) {|Hash| ... } ⇒ void
Publish an event with the given name and payload.
-
.subscribe(*event_names) {|StandardId::Events::Event| ... } ⇒ ActiveSupport::Notifications::Fanout::Subscribers::Evented, Array
Subscribe to an event with a block or callable.
-
.subscribe_to_pattern(pattern) {|StandardId::Events::Event| ... } ⇒ ActiveSupport::Notifications::Fanout::Subscribers::Evented
Subscribe to an event pattern using a regex.
-
.unsubscribe(*subscribers) ⇒ void
Unsubscribe from events.
Class Method Details
.namespaced_event_name(event_name) ⇒ String
Get the full namespaced event name
97 98 99 100 101 |
# File 'lib/standard_id/events.rb', line 97 def namespaced_event_name(event_name) return event_name.to_s if event_name.to_s.start_with?("#{NAMESPACE}.") "#{NAMESPACE}.#{event_name}" end |
.publish(event_name, payload = {}) {|Hash| ... } ⇒ void
This method returns an undefined value.
Publish an event with the given name and payload
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/standard_id/events.rb', line 25 def publish(event_name, payload = {}, &block) event_payload = block ? block.call.merge(payload) : payload full_event_name = namespaced_event_name(event_name) # Add standard metadata to all events enriched_payload = enrich_payload(event_payload, event_name) ActiveSupport::Notifications.instrument(full_event_name, enriched_payload) rescue ActiveSupport::Notifications::InstrumentationSubscriberError => e # Re-raise the first exception only (stop at first failure) # This prevents confusing "multiple exceptions" messages when # multiple guards (e.g., AccountStatus + AccountLocking) both fail raise e.exceptions.first if e.exceptions.any? end |
.subscribe(*event_names) {|StandardId::Events::Event| ... } ⇒ ActiveSupport::Notifications::Fanout::Subscribers::Evented, Array
Subscribe to an event with a block or callable
61 62 63 64 65 66 67 68 69 |
# File 'lib/standard_id/events.rb', line 61 def subscribe(*event_names, &block) event_names = event_names.flatten if event_names.size == 1 subscribe_single(event_names.first, &block) else event_names.map { |event_name| subscribe_single(event_name, &block) } end end |
.subscribe_to_pattern(pattern) {|StandardId::Events::Event| ... } ⇒ ActiveSupport::Notifications::Fanout::Subscribers::Evented
Subscribe to an event pattern using a regex
77 78 79 |
# File 'lib/standard_id/events.rb', line 77 def subscribe_to_pattern(pattern, &block) subscribe_single(pattern, &block) end |
.unsubscribe(*subscribers) ⇒ void
This method returns an undefined value.
Unsubscribe from events
86 87 88 89 90 |
# File 'lib/standard_id/events.rb', line 86 def unsubscribe(*subscribers) subscribers.flatten.each do |subscriber| ActiveSupport::Notifications.unsubscribe(subscriber) end end |