Class: Kaal::Definition::DatabaseEngine

Inherits:
Registry
  • Object
show all
Defined in:
lib/kaal/definition/database_engine.rb

Overview

ActiveRecord-backed definition registry persisted in kaal_definitions.

Instance Method Summary collapse

Methods inherited from Registry

#disable_definition, #enable_definition

Constructor Details

#initializeDatabaseEngine

Returns a new instance of DatabaseEngine.



14
15
16
17
# File 'lib/kaal/definition/database_engine.rb', line 14

def initialize
  super
  @definition_model = ::Kaal::CronDefinition
end

Instance Method Details

#all_definitionsObject



41
42
43
# File 'lib/kaal/definition/database_engine.rb', line 41

def all_definitions
  @definition_model.order(:key).map(&:to_definition_hash)
end

#enabled_definitionsObject



45
46
47
# File 'lib/kaal/definition/database_engine.rb', line 45

def enabled_definitions
  @definition_model.where(enabled: true).order(:key).map(&:to_definition_hash)
end

#find_definition(key) ⇒ Object



36
37
38
39
# File 'lib/kaal/definition/database_engine.rb', line 36

def find_definition(key)
  record = @definition_model.find_by(key: key)
  record&.to_definition_hash
end

#remove_definition(key) ⇒ Object



29
30
31
32
33
34
# File 'lib/kaal/definition/database_engine.rb', line 29

def remove_definition(key)
  record = @definition_model.find_by(key: key)
  return nil unless record

  record.destroy_and_return_definition_hash
end

#upsert_definition(key:, cron:, enabled: true, source: 'code', metadata: {}) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/kaal/definition/database_engine.rb', line 19

def upsert_definition(key:, cron:, enabled: true, source: 'code', metadata: {})
  @definition_model.upsert_definition!(
    key: key,
    cron: cron,
    enabled: enabled,
    source: source,
    metadata: 
  ).to_definition_hash
end