Class: Tasker::Constants::EventDefinitions

Inherits:
Object
  • Object
show all
Defined in:
lib/tasker/constants/event_definitions.rb

Overview

EventDefinitions provides a bridge between event constants and their metadata

This class loads event metadata from system_events.yml and provides methods to find events by constant, retrieve all events by category, etc. It serves as the single source of truth for event documentation and payload schemas.

Class Method Summary collapse

Class Method Details

.all_constantsArray<String>

Get all event constants

Returns:

  • (Array<String>)

    All event constant names



40
41
42
# File 'lib/tasker/constants/event_definitions.rb', line 40

def all_constants
  .values.pluck('constant').compact
end

.all_eventsHash

Get all events grouped by category

Returns:

  • (Hash)

    Events grouped by category (task, step, workflow, etc.)



25
26
27
# File 'lib/tasker/constants/event_definitions.rb', line 25

def all_events
  @all_events ||= build_all_events
end

.events_by_category(category) ⇒ Hash

Get events for a specific category

Parameters:

  • category (String)

    The event category (task, step, workflow, etc.)

Returns:

  • (Hash)

    Events in the specified category



33
34
35
# File 'lib/tasker/constants/event_definitions.rb', line 33

def events_by_category(category)
  all_events[category.to_s] || {}
end

.find_by(constant:) ⇒ Hash?

Find event definition by constant name

Parameters:

  • constant (String)

    The event constant (e.g., 'task.completed')

Returns:

  • (Hash, nil)

    Event definition or nil if not found



18
19
20
# File 'lib/tasker/constants/event_definitions.rb', line 18

def find_by(constant:)
  .find { |_key, data| data['constant'] == constant }&.last
end

.refresh!void

This method returns an undefined value.

Refresh cached data (useful for testing)



47
48
49
50
# File 'lib/tasker/constants/event_definitions.rb', line 47

def refresh!
  @event_metadata = nil
  @all_events = nil
end