kaal 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -24
  3. data/config/kaal.yml +12 -0
  4. data/lib/kaal/backend/adapter.rb +4 -0
  5. data/lib/kaal/cli.rb +38 -34
  6. data/lib/kaal/config/backend_factory.rb +178 -0
  7. data/lib/kaal/config/configuration.rb +65 -7
  8. data/lib/kaal/config/file_loader.rb +187 -0
  9. data/lib/kaal/config.rb +2 -0
  10. data/lib/kaal/runtime/scheduler_boot_loader.rb +1 -1
  11. data/lib/kaal/scheduler_file/loader.rb +1 -1
  12. data/lib/kaal/version.rb +1 -1
  13. data/lib/kaal.rb +7 -0
  14. data/sig/00_types.rbs +12 -0
  15. data/sig/dependencies.rbs +49 -0
  16. data/sig/kaal/active_record_support.rbs +23 -0
  17. data/sig/kaal/backend/adapter.rbs +26 -0
  18. data/sig/kaal/backend/dispatch_attempt_logger.rbs +17 -0
  19. data/sig/kaal/backend/dispatch_logging.rbs +23 -0
  20. data/sig/kaal/backend/dispatch_registry_accessor.rbs +17 -0
  21. data/sig/kaal/backend/memory_adapter.rbs +33 -0
  22. data/sig/kaal/backend/mysql.rbs +25 -0
  23. data/sig/kaal/backend/postgres.rbs +19 -0
  24. data/sig/kaal/backend/redis_adapter.rbs +41 -0
  25. data/sig/kaal/backend/sqlite.rbs +19 -0
  26. data/sig/kaal/cli.rbs +41 -0
  27. data/sig/kaal/config/backend_factory.rbs +41 -0
  28. data/sig/kaal/config/configuration.rbs +70 -0
  29. data/sig/kaal/config/delayed_job_security_policy.rbs +19 -0
  30. data/sig/kaal/config/file_loader.rbs +35 -0
  31. data/sig/kaal/config/scheduler_config_error.rbs +4 -0
  32. data/sig/kaal/config/scheduler_time_zone_resolver.rbs +19 -0
  33. data/sig/kaal/config.rbs +11 -0
  34. data/sig/kaal/core/coordinator.rbs +103 -0
  35. data/sig/kaal/core/enabled_entry_enumerator.rbs +21 -0
  36. data/sig/kaal/core/occurrence_finder.rbs +9 -0
  37. data/sig/kaal/core.rbs +9 -0
  38. data/sig/kaal/definition/database_engine.rbs +25 -0
  39. data/sig/kaal/definition/memory_engine.rbs +23 -0
  40. data/sig/kaal/definition/persistence_helpers.rbs +9 -0
  41. data/sig/kaal/definition/redis_engine.rbs +33 -0
  42. data/sig/kaal/definition/registry.rbs +29 -0
  43. data/sig/kaal/definitions/registration_service.rbs +27 -0
  44. data/sig/kaal/definitions/registry_accessor.rbs +17 -0
  45. data/sig/kaal/delayed_job/database_engine.rbs +37 -0
  46. data/sig/kaal/delayed_job/dispatch_failure_logger.rbs +7 -0
  47. data/sig/kaal/delayed_job/memory_engine.rbs +29 -0
  48. data/sig/kaal/delayed_job/mysql_version_support.rbs +15 -0
  49. data/sig/kaal/delayed_job/redis_engine.rbs +31 -0
  50. data/sig/kaal/delayed_job/registry.rbs +20 -0
  51. data/sig/kaal/dispatch/database_engine.rbs +39 -0
  52. data/sig/kaal/dispatch/memory_engine.rbs +23 -0
  53. data/sig/kaal/dispatch/redis_engine.rbs +25 -0
  54. data/sig/kaal/dispatch/registry.rbs +11 -0
  55. data/sig/kaal/internal/active_record/base_record.rbs +8 -0
  56. data/sig/kaal/internal/active_record/connection_support.rbs +25 -0
  57. data/sig/kaal/internal/active_record/database_backend.rbs +37 -0
  58. data/sig/kaal/internal/active_record/definition_record.rbs +8 -0
  59. data/sig/kaal/internal/active_record/definition_registry.rbs +27 -0
  60. data/sig/kaal/internal/active_record/delayed_job_record.rbs +8 -0
  61. data/sig/kaal/internal/active_record/delayed_job_registry.rbs +39 -0
  62. data/sig/kaal/internal/active_record/dispatch_record.rbs +8 -0
  63. data/sig/kaal/internal/active_record/dispatch_registry.rbs +43 -0
  64. data/sig/kaal/internal/active_record/lock_record.rbs +8 -0
  65. data/sig/kaal/internal/active_record/migration_templates.rbs +17 -0
  66. data/sig/kaal/internal/active_record/mysql_backend.rbs +45 -0
  67. data/sig/kaal/internal/active_record/postgres_backend.rbs +41 -0
  68. data/sig/kaal/internal/active_record.rbs +0 -0
  69. data/sig/kaal/internal/sequel/database_backend.rbs +39 -0
  70. data/sig/kaal/internal/sequel/mysql_backend.rbs +47 -0
  71. data/sig/kaal/internal/sequel/postgres_backend.rbs +43 -0
  72. data/sig/kaal/internal/sequel.rbs +0 -0
  73. data/sig/kaal/job_dispatcher.rbs +19 -0
  74. data/sig/kaal/persistence/database.rbs +19 -0
  75. data/sig/kaal/persistence/migration_templates.rbs +15 -0
  76. data/sig/kaal/register_conflict_support.rbs +11 -0
  77. data/sig/kaal/registry.rbs +44 -0
  78. data/sig/kaal/runtime/runtime_context.rbs +23 -0
  79. data/sig/kaal/runtime/scheduler_boot_loader.rbs +23 -0
  80. data/sig/kaal/runtime/signal_handler_chain.rbs +19 -0
  81. data/sig/kaal/runtime/signal_handler_installer.rbs +19 -0
  82. data/sig/kaal/runtime.rbs +11 -0
  83. data/sig/kaal/scheduler_file/hash_transform.rbs +9 -0
  84. data/sig/kaal/scheduler_file/helper_bundle.rbs +15 -0
  85. data/sig/kaal/scheduler_file/job_applier.rbs +43 -0
  86. data/sig/kaal/scheduler_file/job_normalizer.rbs +27 -0
  87. data/sig/kaal/scheduler_file/loader.rbs +69 -0
  88. data/sig/kaal/scheduler_file/payload_loader.rbs +33 -0
  89. data/sig/kaal/scheduler_file/placeholder_support.rbs +19 -0
  90. data/sig/kaal/scheduler_file.rbs +9 -0
  91. data/sig/kaal/sequel_support.rbs +25 -0
  92. data/sig/kaal/support/hash_tools.rbs +27 -0
  93. data/sig/kaal/utils/cron_humanizer.rbs +39 -0
  94. data/sig/kaal/utils/cron_utils.rbs +43 -0
  95. data/sig/kaal/utils/idempotency_key_generator.rbs +5 -0
  96. data/sig/kaal/utils.rbs +9 -0
  97. data/sig/kaal/version.rbs +3 -0
  98. data/sig/kaal.rbs +145 -0
  99. metadata +90 -3
  100. data/config/kaal.rb +0 -15
  101. /data/config/{scheduler.yml → kaal-scheduler.yml} +0 -0
@@ -0,0 +1,23 @@
1
+ module Kaal
2
+ class SchedulerBootLoader
3
+ @configuration_provider: Kaal::rbs_any
4
+
5
+ @logger: Kaal::rbs_any
6
+
7
+ @runtime_context: Kaal::rbs_any
8
+
9
+ @load_scheduler_file: Kaal::rbs_any
10
+
11
+ def initialize: (configuration_provider: Kaal::rbs_any, logger: Kaal::rbs_any, runtime_context: Kaal::rbs_any, load_scheduler_file: Kaal::rbs_any) -> void
12
+
13
+ def load_on_boot: () -> Kaal::rbs_any
14
+
15
+ def load_on_boot!: () -> (nil | Kaal::rbs_any)
16
+
17
+ private
18
+
19
+ def load_scheduler_file: () -> Kaal::rbs_any
20
+
21
+ def fetch_configuration: () -> Kaal::rbs_any
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ module Kaal
2
+ class SignalHandlerChain
3
+ @signal: Kaal::rbs_any
4
+
5
+ @previous_handler: Kaal::rbs_any
6
+
7
+ @logger: Kaal::rbs_any
8
+
9
+ RESERVED_COMMAND_HANDLERS: ::Array["DEFAULT" | "IGNORE"]
10
+
11
+ def initialize: (signal: Kaal::rbs_any, previous_handler: Kaal::rbs_any, logger: Kaal::rbs_any) -> void
12
+
13
+ def call: (*Kaal::rbs_any, **Kaal::rbs_any) ?{ (Kaal::rbs_any) -> Kaal::rbs_any } -> (nil | Kaal::rbs_any)
14
+
15
+ private
16
+
17
+ def invoke_callable: (*Kaal::rbs_any args) -> Kaal::rbs_any
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module Kaal
2
+ class SignalHandlerInstaller
3
+ @signal_module: Kaal::rbs_any
4
+
5
+ SIGNALS: ::Array["TERM" | "INT"]
6
+
7
+ IGNORE_HANDLER: "IGNORE"
8
+
9
+ def initialize: (?signal_module: Kaal::rbs_any) -> void
10
+
11
+ def install: (?signals: Kaal::rbs_any) { (Kaal::rbs_any, Kaal::rbs_any) -> Kaal::rbs_any } -> Kaal::rbs_any
12
+
13
+ private
14
+
15
+ def capture_previous_handler: (Kaal::rbs_any signal) -> Kaal::rbs_any
16
+
17
+ def restore_previous_handler: (Kaal::rbs_any signal, Kaal::rbs_any previous_handler) -> (nil | Kaal::rbs_any)
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ module Kaal
2
+ module Runtime
3
+ RuntimeContext: Kaal::rbs_any
4
+
5
+ SchedulerBootLoader: Kaal::rbs_any
6
+
7
+ SignalHandlerChain: Kaal::rbs_any
8
+
9
+ SignalHandlerInstaller: Kaal::rbs_any
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module Kaal
2
+ module SchedulerHashTransform
3
+ private
4
+
5
+ def stringify_keys: (Kaal::rbs_any object) -> Kaal::rbs_any
6
+
7
+ def symbolize_keys_deep: (Kaal::rbs_any object) -> Kaal::rbs_any
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module Kaal
2
+ class SchedulerFileLoader
3
+ class HelperBundle
4
+ @loader: Kaal::rbs_any
5
+
6
+ def initialize: (loader: Kaal::rbs_any) -> void
7
+
8
+ def stringify_keys: (Kaal::rbs_any payload) -> Kaal::rbs_any
9
+
10
+ def resolve_placeholders: (Kaal::rbs_any value, Kaal::rbs_any context) -> Kaal::rbs_any
11
+
12
+ def validate_placeholders: (Kaal::rbs_any value, key: Kaal::rbs_any) -> Kaal::rbs_any
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,43 @@
1
+ module Kaal
2
+ class SchedulerFileLoader
3
+ class JobApplier
4
+ @configuration: Kaal::rbs_any
5
+
6
+ @definition_registry: Kaal::rbs_any
7
+
8
+ @registry: Kaal::rbs_any
9
+
10
+ @logger: Kaal::rbs_any
11
+
12
+ @helper_bundle: Kaal::rbs_any
13
+
14
+ include Kaal::Support::HashTools
15
+
16
+ def initialize: (configuration: Kaal::rbs_any, definition_registry: Kaal::rbs_any, registry: Kaal::rbs_any, logger: Kaal::rbs_any, helper_bundle: Kaal::rbs_any) -> void
17
+
18
+ def apply: (Kaal::rbs_any job) -> (nil | { key: Kaal::rbs_any, existing_definition: Kaal::rbs_any, existing_registry_entry: Kaal::rbs_any })
19
+
20
+ def rollback_jobs: (Kaal::rbs_any applied_job_contexts) -> Kaal::rbs_any
21
+
22
+ def callback_for: (key: Kaal::rbs_any, job_class_name: Kaal::rbs_any, queue: Kaal::rbs_any, args_template: Kaal::rbs_any, kwargs_template: Kaal::rbs_any) -> Kaal::rbs_any
23
+
24
+ def resolved_job_class: (job_class_name: Kaal::rbs_any, key: Kaal::rbs_any, ?queue: Kaal::rbs_any?) -> Kaal::rbs_any
25
+
26
+ def conflict?: (key: Kaal::rbs_any, existing_definition: Kaal::rbs_any) -> (false | Kaal::rbs_any)
27
+
28
+ def rollback_job: (key: Kaal::rbs_any, existing_definition: Kaal::rbs_any, existing_registry_entry: Kaal::rbs_any) -> Kaal::rbs_any
29
+
30
+ private
31
+
32
+ def persisted_metadata: (Kaal::rbs_any job, Kaal::rbs_any job_class) -> Kaal::rbs_any
33
+
34
+ def build_callback: (Kaal::rbs_any job, Kaal::rbs_any job_class) -> Kaal::rbs_any
35
+
36
+ def validate_keyword_keys: (Kaal::rbs_any raw_kwargs, Kaal::rbs_any key) -> nil
37
+
38
+ def dispatch_job: (Kaal::rbs_any job_class, Kaal::rbs_any queue, Kaal::rbs_any args, Kaal::rbs_any kwargs, Kaal::rbs_any key) -> Kaal::rbs_any
39
+
40
+ def active_job_dispatch?: (Kaal::rbs_any job_class, Kaal::rbs_any queue) -> Kaal::rbs_any
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,27 @@
1
+ module Kaal
2
+ class SchedulerFileLoader
3
+ class JobNormalizer
4
+ @hash_transform: Kaal::rbs_any
5
+
6
+ @placeholder_support: Kaal::rbs_any
7
+
8
+ @cron_validator: Kaal::rbs_any
9
+
10
+ include Kaal::Support::HashTools
11
+
12
+ def initialize: (hash_transform: Kaal::rbs_any, placeholder_support: Kaal::rbs_any, cron_validator: Kaal::rbs_any) -> void
13
+
14
+ def call: (Kaal::rbs_any job_payload) -> ::Hash[:key | :cron | :job_class_name | Kaal::rbs_any, Kaal::rbs_any]
15
+
16
+ private
17
+
18
+ def required_string: (Kaal::rbs_any payload, field: Kaal::rbs_any, error_prefix: Kaal::rbs_any) -> Kaal::rbs_any
19
+
20
+ def validate_cron: (key: Kaal::rbs_any, cron: Kaal::rbs_any) -> (nil | Kaal::rbs_any)
21
+
22
+ def extract_job_options: (Kaal::rbs_any payload, key: Kaal::rbs_any) -> { queue: Kaal::rbs_any, args: Kaal::rbs_any, kwargs: Kaal::rbs_any, enabled: Kaal::rbs_any, metadata: Kaal::rbs_any }
23
+
24
+ def validate_job_option_types: (key: Kaal::rbs_any, args: Kaal::rbs_any, kwargs: Kaal::rbs_any, queue: Kaal::rbs_any) -> (nil | Kaal::rbs_any)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,69 @@
1
+ module Kaal
2
+ class SchedulerFileLoader
3
+ @configuration: Kaal::rbs_any
4
+
5
+ @definition_registry: Kaal::rbs_any
6
+
7
+ @registry: Kaal::rbs_any
8
+
9
+ @logger: Kaal::rbs_any
10
+
11
+ @runtime_context: Kaal::rbs_any
12
+
13
+ @placeholder_resolvers: Kaal::rbs_any
14
+
15
+ @payload_loader: Kaal::rbs_any
16
+
17
+ @job_normalizer: Kaal::rbs_any
18
+
19
+ @job_applier: Kaal::rbs_any
20
+
21
+ @helper_bundle: Kaal::rbs_any
22
+
23
+ include SchedulerHashTransform
24
+
25
+ include SchedulerPlaceholderSupport
26
+
27
+ include Kaal::Support::HashTools
28
+
29
+ PLACEHOLDER_PATTERN: ::Regexp
30
+
31
+ ALLOWED_PLACEHOLDERS: ::Hash[::String, Kaal::rbs_any]
32
+
33
+ def initialize: (configuration: Kaal::rbs_any, definition_registry: Kaal::rbs_any, registry: Kaal::rbs_any, logger: Kaal::rbs_any, ?runtime_context: Kaal::rbs_any) -> void
34
+
35
+ def load: () -> Kaal::rbs_any
36
+
37
+ private
38
+
39
+ def handle_missing_file: (Kaal::rbs_any path) -> Kaal::rbs_any
40
+
41
+ def extract_jobs: (Kaal::rbs_any payload) -> Kaal::rbs_any
42
+
43
+ def validate_unique_keys: (Kaal::rbs_any jobs) -> Kaal::rbs_any
44
+
45
+ def normalize_job: (Kaal::rbs_any job_payload) -> Kaal::rbs_any
46
+
47
+ def extract_job_options: (Kaal::rbs_any payload, key: Kaal::rbs_any) -> Kaal::rbs_any
48
+
49
+ def apply_job: (Kaal::rbs_any job) -> Kaal::rbs_any
50
+
51
+ def rollback_applied_jobs: (?Kaal::rbs_any applied_job_contexts) -> Kaal::rbs_any
52
+
53
+ def rollback_applied_job: (key: Kaal::rbs_any, existing_definition: Kaal::rbs_any, existing_registry_entry: Kaal::rbs_any) -> Kaal::rbs_any
54
+
55
+ def skip_due_to_conflict?: (key: Kaal::rbs_any, existing_definition: Kaal::rbs_any) -> Kaal::rbs_any
56
+
57
+ def build_callback: (key: Kaal::rbs_any, job_class_name: Kaal::rbs_any, queue: Kaal::rbs_any, args_template: Kaal::rbs_any, kwargs_template: Kaal::rbs_any) -> Kaal::rbs_any
58
+
59
+ def resolve_job_class: (job_class_name: Kaal::rbs_any, key: Kaal::rbs_any, ?queue: Kaal::rbs_any?) -> Kaal::rbs_any
60
+
61
+ def payload_loader: () -> Kaal::rbs_any
62
+
63
+ def job_normalizer: () -> Kaal::rbs_any
64
+
65
+ def job_applier: () -> Kaal::rbs_any
66
+
67
+ def helper_bundle: () -> Kaal::rbs_any
68
+ end
69
+ end
@@ -0,0 +1,33 @@
1
+ module Kaal
2
+ class SchedulerFileLoader
3
+ class PayloadLoader
4
+ @configuration: Kaal::rbs_any
5
+
6
+ @runtime_context: Kaal::rbs_any
7
+
8
+ @logger: Kaal::rbs_any
9
+
10
+ @hash_transform: Kaal::rbs_any
11
+
12
+ def initialize: (configuration: Kaal::rbs_any, runtime_context: Kaal::rbs_any, logger: Kaal::rbs_any, hash_transform: Kaal::rbs_any) -> void
13
+
14
+ def load: () -> (::Array[Kaal::rbs_any | nil] | ::Array[Kaal::rbs_any])
15
+
16
+ def handle_missing_file: (Kaal::rbs_any path) -> ::Array[Kaal::rbs_any]
17
+
18
+ def extract_jobs: (Kaal::rbs_any payload) -> Kaal::rbs_any
19
+
20
+ def validate_unique_keys: (Kaal::rbs_any jobs) -> (nil | Kaal::rbs_any)
21
+
22
+ private
23
+
24
+ def scheduler_file_path: () -> Kaal::rbs_any
25
+
26
+ def parse_yaml: (Kaal::rbs_any path) -> Kaal::rbs_any
27
+
28
+ def render_yaml_erb: (Kaal::rbs_any path) -> Kaal::rbs_any
29
+
30
+ def fetch_hash: (Kaal::rbs_any payload, Kaal::rbs_any key) -> Kaal::rbs_any
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ module Kaal
2
+ module SchedulerPlaceholderSupport
3
+ @placeholder_token_anchors: Kaal::rbs_any
4
+
5
+ private
6
+
7
+ def validate_placeholders: (Kaal::rbs_any input, key: Kaal::rbs_any) -> Kaal::rbs_any
8
+
9
+ def resolve_placeholders: (Kaal::rbs_any template, Kaal::rbs_any context) -> Kaal::rbs_any
10
+
11
+ def replace_placeholders: (Kaal::rbs_any text, Kaal::rbs_any context) -> Kaal::rbs_any
12
+
13
+ def validate_placeholder_key: (Kaal::rbs_any hash_key, key: Kaal::rbs_any) -> (nil | Kaal::rbs_any)
14
+
15
+ def validate_placeholder_syntax: (Kaal::rbs_any input, key: Kaal::rbs_any) -> Kaal::rbs_any
16
+
17
+ def placeholder_token_anchors: () -> Kaal::rbs_any
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ module Kaal
2
+ module SchedulerFile
3
+ Loader: Kaal::rbs_any
4
+
5
+ HashTransform: Kaal::rbs_any
6
+
7
+ PlaceholderSupport: Kaal::rbs_any
8
+ end
9
+ end
@@ -0,0 +1,25 @@
1
+ module Kaal
2
+ module Sequel
3
+ def self.install_postgres_migration: (target_dir: Kaal::rbs_any, ?migration_name: ::String) -> Kaal::rbs_any
4
+
5
+ def self.install_mysql_migration: (target_dir: Kaal::rbs_any, ?migration_name: ::String) -> Kaal::rbs_any
6
+
7
+ def self.install_sqlite_migration: (target_dir: Kaal::rbs_any, ?migration_name: ::String) -> Kaal::rbs_any
8
+
9
+ def self.install_migrations: (target_dir: Kaal::rbs_any, backend: Kaal::rbs_any, ?migration_name: Kaal::rbs_any?) -> Kaal::rbs_any
10
+
11
+ def self.require_sequel!: () -> Kaal::rbs_any
12
+
13
+ def self.normalize_migration_name: (Kaal::rbs_any name, fallback: Kaal::rbs_any) -> Kaal::rbs_any
14
+
15
+ def self.default_migration_name_for: (Kaal::rbs_any backend) -> ::String
16
+
17
+ def self.migration_suffixes_for: (Kaal::rbs_any backend) -> (::Array["dispatches" | "locks" | "definitions" | "delayed_jobs"] | ::Array["dispatches" | "definitions" | "delayed_jobs"])
18
+
19
+ def self.timestamp: (?::Integer offset) -> Kaal::rbs_any
20
+
21
+ def self.letter?: (Kaal::rbs_any char) -> Kaal::rbs_any
22
+
23
+ def self.digit?: (Kaal::rbs_any char) -> Kaal::rbs_any
24
+ end
25
+ end
@@ -0,0 +1,27 @@
1
+ module Kaal
2
+ module Support
3
+ module HashTools
4
+ def self.deep_dup: (Kaal::rbs_any value) -> Kaal::rbs_any
5
+
6
+ def self.stringify_keys: (Kaal::rbs_any value) -> Kaal::rbs_any
7
+
8
+ def self.symbolize_keys: (Kaal::rbs_any value) -> Kaal::rbs_any
9
+
10
+ def self.deep_merge: (Kaal::rbs_any left, Kaal::rbs_any right) -> Kaal::rbs_any
11
+
12
+ def self.constantize: (Kaal::rbs_any name) -> Kaal::rbs_any
13
+
14
+ def self.duplicable?: (Kaal::rbs_any value) -> Kaal::rbs_any
15
+
16
+ def self.transform_keys: (Kaal::rbs_any value) { (Kaal::rbs_any) -> Kaal::rbs_any } -> Kaal::rbs_any
17
+
18
+ def self.duplicate_child: (Kaal::rbs_any child) -> Kaal::rbs_any
19
+
20
+ def self.transform_child_keys: (Kaal::rbs_any child) { (Kaal::rbs_any) -> Kaal::rbs_any } -> Kaal::rbs_any
21
+
22
+ def self.transform_hash_keys: (Kaal::rbs_any value) { (Kaal::rbs_any) -> Kaal::rbs_any } -> Kaal::rbs_any
23
+
24
+ def self.transform_array_keys: (Kaal::rbs_any value) { (Kaal::rbs_any) -> Kaal::rbs_any } -> Kaal::rbs_any
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,39 @@
1
+ module Kaal
2
+ module CronHumanizer
3
+ I18N_LOAD_MUTEX: Kaal::rbs_any
4
+
5
+ MACRO_PHRASES: ::Hash[::String, ::String]
6
+
7
+ def self.to_human: (Kaal::rbs_any expression, ?locale: Kaal::rbs_any?) -> Kaal::rbs_any
8
+
9
+ def self.humanize_expression: (Kaal::rbs_any normalized) -> Kaal::rbs_any
10
+
11
+ def self.humanize_macro: (Kaal::rbs_any expression) -> Kaal::rbs_any
12
+
13
+ def self.humanize_cron: (Kaal::rbs_any cron) -> Kaal::rbs_any
14
+
15
+ def self.every_minute_interval_phrase: (Kaal::rbs_any cron) -> (nil | Kaal::rbs_any)
16
+
17
+ def self.derive_interval: (Kaal::rbs_any minutes) -> (nil | Kaal::rbs_any)
18
+
19
+ def self.at_time_weekday_phrase: (Kaal::rbs_any cron) -> (nil | ::String)
20
+
21
+ def self.at_time_daily_phrase: (Kaal::rbs_any cron) -> (nil | ::String)
22
+
23
+ def self.single_time?: (Kaal::rbs_any cron) -> Kaal::rbs_any
24
+
25
+ def self.extract_weekday: (Kaal::rbs_any weekdays) -> (nil | Kaal::rbs_any)
26
+
27
+ def self.weekday_name: (Kaal::rbs_any day) -> Kaal::rbs_any
28
+
29
+ def self.format_time: (Kaal::rbs_any hour, Kaal::rbs_any minute) -> Kaal::rbs_any
30
+
31
+ def self.interval_unit: (Kaal::rbs_any count, singular: Kaal::rbs_any, plural: Kaal::rbs_any) -> Kaal::rbs_any
32
+
33
+ def self.macro?: (Kaal::rbs_any expression) -> Kaal::rbs_any
34
+
35
+ def self.translate_phrase: (Kaal::rbs_any key, **Kaal::rbs_any) -> Kaal::rbs_any
36
+
37
+ def self.ensure_i18n_loaded!: () -> (nil | Kaal::rbs_any)
38
+ end
39
+ end
@@ -0,0 +1,43 @@
1
+ module Kaal
2
+ module CronUtils
3
+ MACRO_MAP: ::Hash[::String, ::String]
4
+
5
+ CANONICAL_MACROS: ::Hash[::String, ::String]
6
+
7
+ FIELD_SPECS: ::Array[Kaal::rbs_any]
8
+
9
+ def self.normalize_expression: (Kaal::rbs_any expression) -> Kaal::rbs_any
10
+
11
+ def self.safe_normalize_expression: (Kaal::rbs_any expression) -> Kaal::rbs_any
12
+
13
+ def self.unsupported_macro_error_message: (Kaal::rbs_any expression) -> ::String
14
+
15
+ def self.invalid_expression_error_message: (Kaal::rbs_any expression) -> ::String
16
+
17
+ def self.valid?: (Kaal::rbs_any expression) -> Kaal::rbs_any
18
+
19
+ def self.simplify: (Kaal::rbs_any expression) -> Kaal::rbs_any
20
+
21
+ def self.lint: (Kaal::rbs_any expression) -> (::Array[Kaal::rbs_any] | Kaal::rbs_any)
22
+
23
+ def self.lint_field: (Kaal::rbs_any field, Kaal::rbs_any spec) -> Kaal::rbs_any
24
+
25
+ def self.lint_segment: (Kaal::rbs_any segment, Kaal::rbs_any spec) -> (::Array[Kaal::rbs_any] | Kaal::rbs_any | ::Array[::String])
26
+
27
+ def self.lint_step_only: (Kaal::rbs_any step, Kaal::rbs_any spec) -> (::Array[Kaal::rbs_any] | ::Array[::String])
28
+
29
+ def self.lint_range_segment: (Kaal::rbs_any segment, Kaal::rbs_any start_value, Kaal::rbs_any end_value, Kaal::rbs_any step, Kaal::rbs_any spec) -> (::Array[::String] | ::Array[Kaal::rbs_any])
30
+
31
+ def self.lint_base_step_segment: (Kaal::rbs_any segment, Kaal::rbs_any base, Kaal::rbs_any step, Kaal::rbs_any spec) -> (::Array[::String] | ::Array[Kaal::rbs_any])
32
+
33
+ def self.parse_value: (Kaal::rbs_any token, Kaal::rbs_any spec) -> (Kaal::rbs_any | nil)
34
+
35
+ def self.macro?: (Kaal::rbs_any expression) -> Kaal::rbs_any
36
+
37
+ def self.five_fields?: (Kaal::rbs_any expression) -> Kaal::rbs_any
38
+
39
+ def self.canonical_macro_for: (Kaal::rbs_any macro) -> Kaal::rbs_any
40
+
41
+ def self.field_count_message: (Kaal::rbs_any expression) -> ::String
42
+ end
43
+ end
@@ -0,0 +1,5 @@
1
+ module Kaal
2
+ class IdempotencyKeyGenerator
3
+ def self.call: (Kaal::rbs_any cron_key, Kaal::rbs_any fire_time, configuration: Kaal::rbs_any) -> ::String
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ module Kaal
2
+ module Utils
3
+ CronUtils: Kaal::rbs_any
4
+
5
+ CronHumanizer: Kaal::rbs_any
6
+
7
+ IdempotencyKeyGenerator: Kaal::rbs_any
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module Kaal
2
+ VERSION: String
3
+ end
data/sig/kaal.rbs ADDED
@@ -0,0 +1,145 @@
1
+ module Kaal
2
+ self.@configuration: Kaal::rbs_any
3
+
4
+ self.@registry: Kaal::rbs_any
5
+
6
+ self.@coordinator: Kaal::rbs_any
7
+
8
+ self.@definition_registry: Kaal::rbs_any
9
+
10
+ self.@definitions_registry_accessor: Kaal::rbs_any
11
+
12
+ self.@dispatch_registry_accessor: Kaal::rbs_any
13
+
14
+ self.@risky_configuration_warnings_emitted: Kaal::rbs_any
15
+
16
+ self.@registration_service: Kaal::rbs_any
17
+
18
+ extend RegisterConflictSupport
19
+
20
+ def self.configuration: () -> Kaal::rbs_any
21
+
22
+ def self.registry: () -> Kaal::rbs_any
23
+
24
+ def self.coordinator: () -> Kaal::rbs_any
25
+
26
+ def self.reset_configuration!: () -> Kaal::rbs_any
27
+
28
+ def self.reset_registry!: () -> Kaal::rbs_any
29
+
30
+ def self.reset_coordinator!: () -> Kaal::rbs_any
31
+
32
+ def self.configure: () ?{ (Kaal::rbs_any) -> Kaal::rbs_any } -> (Kaal::rbs_any | nil)
33
+
34
+ def self.load_config_file!: (?path: ::String, ?runtime_context: Kaal::rbs_any) -> Kaal::rbs_any
35
+
36
+ def self.register: (key: Kaal::rbs_any, cron: Kaal::rbs_any, enqueue: Kaal::rbs_any) -> Kaal::rbs_any
37
+
38
+ def self.load_scheduler_file!: (?runtime_context: Kaal::rbs_any) -> Kaal::rbs_any
39
+
40
+ def self.unregister: (key: Kaal::rbs_any) -> Kaal::rbs_any
41
+
42
+ def self.registered: () -> Kaal::rbs_any
43
+
44
+ def self.registered?: (key: Kaal::rbs_any) -> Kaal::rbs_any
45
+
46
+ def self.enable: (key: Kaal::rbs_any) -> Kaal::rbs_any
47
+
48
+ def self.disable: (key: Kaal::rbs_any) -> Kaal::rbs_any
49
+
50
+ def self.start!: () -> Kaal::rbs_any
51
+
52
+ def self.stop!: (?timeout: ::Integer) -> Kaal::rbs_any
53
+
54
+ def self.running?: () -> Kaal::rbs_any
55
+
56
+ def self.restart!: () -> Kaal::rbs_any
57
+
58
+ def self.tick!: () -> Kaal::rbs_any
59
+
60
+ def self.enqueue_at: (at: Kaal::rbs_any, job_class: Kaal::rbs_any, args: Kaal::rbs_any, job_id: Kaal::rbs_any, ?queue: Kaal::rbs_any?, ?connection: Kaal::rbs_any?) -> Kaal::rbs_any
61
+
62
+ def self.with_idempotency: (Kaal::rbs_any key, Kaal::rbs_any fire_time) ?{ (Kaal::rbs_any) -> Kaal::rbs_any } -> Kaal::rbs_any
63
+
64
+ def self.dispatched?: (Kaal::rbs_any key, Kaal::rbs_any fire_time) -> Kaal::rbs_any
65
+
66
+ def self.dispatch_log_registry: () -> Kaal::rbs_any
67
+
68
+ def self.tick_interval: () -> Kaal::rbs_any
69
+
70
+ def self.window_lookback: () -> Kaal::rbs_any
71
+
72
+ def self.window_lookahead: () -> Kaal::rbs_any
73
+
74
+ def self.lease_ttl: () -> Kaal::rbs_any
75
+
76
+ def self.namespace: () -> Kaal::rbs_any
77
+
78
+ def self.backend: () -> Kaal::rbs_any
79
+
80
+ def self.logger: () -> Kaal::rbs_any
81
+
82
+ def self.time_zone: () -> Kaal::rbs_any
83
+
84
+ def self.tick_interval=: (Kaal::rbs_any value) -> Kaal::rbs_any
85
+
86
+ def self.window_lookback=: (Kaal::rbs_any value) -> Kaal::rbs_any
87
+
88
+ def self.window_lookahead=: (Kaal::rbs_any value) -> Kaal::rbs_any
89
+
90
+ def self.lease_ttl=: (Kaal::rbs_any value) -> Kaal::rbs_any
91
+
92
+ def self.namespace=: (Kaal::rbs_any value) -> Kaal::rbs_any
93
+
94
+ def self.backend=: (Kaal::rbs_any value) -> Kaal::rbs_any
95
+
96
+ def self.logger=: (Kaal::rbs_any value) -> Kaal::rbs_any
97
+
98
+ def self.time_zone=: (Kaal::rbs_any value) -> Kaal::rbs_any
99
+
100
+ def self.delayed_job_allowed_class_prefixes: () -> Kaal::rbs_any
101
+
102
+ def self.delayed_job_allowed_class_prefixes=: (Kaal::rbs_any value) -> Kaal::rbs_any
103
+
104
+ def self.definition_registry: () -> Kaal::rbs_any
105
+
106
+ def self.validate: () -> Kaal::rbs_any
107
+
108
+ def self.validate!: () -> Kaal::rbs_any
109
+
110
+ def self.validation_warnings: () -> Kaal::rbs_any
111
+
112
+ def self.warn_on_risky_configuration!: (?configuration: Kaal::rbs_any, ?logger: Kaal::rbs_any) -> (::Array[Kaal::rbs_any] | Kaal::rbs_any)
113
+
114
+ def self.valid?: (Kaal::rbs_any expression) -> Kaal::rbs_any
115
+
116
+ def self.simplify: (Kaal::rbs_any expression) -> Kaal::rbs_any
117
+
118
+ def self.lint: (Kaal::rbs_any expression) -> Kaal::rbs_any
119
+
120
+ def self.to_human: (Kaal::rbs_any expression, ?locale: Kaal::rbs_any?) -> Kaal::rbs_any
121
+
122
+ private
123
+
124
+ def self.rollback_registered_definition: (Kaal::rbs_any key, Kaal::rbs_any existing_definition) -> (Kaal::rbs_any | Kaal::rbs_any | nil)
125
+
126
+ def self.registration_service: () -> Kaal::rbs_any
127
+
128
+ def self.definitions_registry_accessor: () -> Kaal::rbs_any
129
+
130
+ def self.dispatch_registry_accessor: () -> Kaal::rbs_any
131
+
132
+ def self.delayed_store!: () -> Kaal::rbs_any
133
+
134
+ def self.normalize_delayed_run_at: (Kaal::rbs_any at) -> Kaal::rbs_any
135
+
136
+ def self.normalize_delayed_args: (Kaal::rbs_any args) -> Kaal::rbs_any
137
+
138
+ def self.normalize_delayed_queue: (Kaal::rbs_any queue) -> (nil | Kaal::rbs_any)
139
+
140
+ def self.normalize_delayed_job_id: (Kaal::rbs_any job_id) -> Kaal::rbs_any
141
+
142
+ def self.invalid_delayed_time_error: () -> Kaal::rbs_any
143
+
144
+ def self.ensure_delayed_time!: (Kaal::rbs_any time) -> (Kaal::rbs_any | nil)
145
+ end