fractor 0.1.6 → 0.1.8

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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +227 -102
  3. data/README.adoc +113 -1940
  4. data/docs/.lycheeignore +16 -0
  5. data/docs/Gemfile +24 -0
  6. data/docs/README.md +157 -0
  7. data/docs/_config.yml +151 -0
  8. data/docs/_features/error-handling.adoc +1192 -0
  9. data/docs/_features/index.adoc +80 -0
  10. data/docs/_features/monitoring.adoc +589 -0
  11. data/docs/_features/signal-handling.adoc +202 -0
  12. data/docs/_features/workflows.adoc +1235 -0
  13. data/docs/_guides/continuous-mode.adoc +736 -0
  14. data/docs/_guides/cookbook.adoc +1133 -0
  15. data/docs/_guides/index.adoc +55 -0
  16. data/docs/_guides/pipeline-mode.adoc +730 -0
  17. data/docs/_guides/troubleshooting.adoc +358 -0
  18. data/docs/_pages/architecture.adoc +1390 -0
  19. data/docs/_pages/core-concepts.adoc +1392 -0
  20. data/docs/_pages/design-principles.adoc +862 -0
  21. data/docs/_pages/getting-started.adoc +290 -0
  22. data/docs/_pages/installation.adoc +143 -0
  23. data/docs/_reference/api.adoc +1080 -0
  24. data/docs/_reference/error-reporting.adoc +670 -0
  25. data/docs/_reference/examples.adoc +181 -0
  26. data/docs/_reference/index.adoc +96 -0
  27. data/docs/_reference/troubleshooting.adoc +862 -0
  28. data/docs/_tutorials/complex-workflows.adoc +1022 -0
  29. data/docs/_tutorials/data-processing-pipeline.adoc +740 -0
  30. data/docs/_tutorials/first-application.adoc +384 -0
  31. data/docs/_tutorials/index.adoc +48 -0
  32. data/docs/_tutorials/long-running-services.adoc +931 -0
  33. data/docs/assets/images/favicon-16.png +0 -0
  34. data/docs/assets/images/favicon-32.png +0 -0
  35. data/docs/assets/images/favicon-48.png +0 -0
  36. data/docs/assets/images/favicon.ico +0 -0
  37. data/docs/assets/images/favicon.png +0 -0
  38. data/docs/assets/images/favicon.svg +45 -0
  39. data/docs/assets/images/fractor-icon.svg +49 -0
  40. data/docs/assets/images/fractor-logo.svg +61 -0
  41. data/docs/index.adoc +131 -0
  42. data/docs/lychee.toml +39 -0
  43. data/examples/api_aggregator/README.adoc +627 -0
  44. data/examples/api_aggregator/api_aggregator.rb +376 -0
  45. data/examples/auto_detection/README.adoc +407 -29
  46. data/examples/continuous_chat_common/message_protocol.rb +1 -1
  47. data/examples/error_reporting.rb +207 -0
  48. data/examples/file_processor/README.adoc +170 -0
  49. data/examples/file_processor/file_processor.rb +615 -0
  50. data/examples/file_processor/sample_files/invalid.csv +1 -0
  51. data/examples/file_processor/sample_files/orders.xml +24 -0
  52. data/examples/file_processor/sample_files/products.json +23 -0
  53. data/examples/file_processor/sample_files/users.csv +6 -0
  54. data/examples/hierarchical_hasher/README.adoc +629 -41
  55. data/examples/image_processor/README.adoc +610 -0
  56. data/examples/image_processor/image_processor.rb +349 -0
  57. data/examples/image_processor/processed_images/sample_10_processed.jpg.json +12 -0
  58. data/examples/image_processor/processed_images/sample_1_processed.jpg.json +12 -0
  59. data/examples/image_processor/processed_images/sample_2_processed.jpg.json +12 -0
  60. data/examples/image_processor/processed_images/sample_3_processed.jpg.json +12 -0
  61. data/examples/image_processor/processed_images/sample_4_processed.jpg.json +12 -0
  62. data/examples/image_processor/processed_images/sample_5_processed.jpg.json +12 -0
  63. data/examples/image_processor/processed_images/sample_6_processed.jpg.json +12 -0
  64. data/examples/image_processor/processed_images/sample_7_processed.jpg.json +12 -0
  65. data/examples/image_processor/processed_images/sample_8_processed.jpg.json +12 -0
  66. data/examples/image_processor/processed_images/sample_9_processed.jpg.json +12 -0
  67. data/examples/image_processor/test_images/sample_1.png +1 -0
  68. data/examples/image_processor/test_images/sample_10.png +1 -0
  69. data/examples/image_processor/test_images/sample_2.png +1 -0
  70. data/examples/image_processor/test_images/sample_3.png +1 -0
  71. data/examples/image_processor/test_images/sample_4.png +1 -0
  72. data/examples/image_processor/test_images/sample_5.png +1 -0
  73. data/examples/image_processor/test_images/sample_6.png +1 -0
  74. data/examples/image_processor/test_images/sample_7.png +1 -0
  75. data/examples/image_processor/test_images/sample_8.png +1 -0
  76. data/examples/image_processor/test_images/sample_9.png +1 -0
  77. data/examples/log_analyzer/README.adoc +662 -0
  78. data/examples/log_analyzer/log_analyzer.rb +579 -0
  79. data/examples/log_analyzer/sample_logs/apache.log +20 -0
  80. data/examples/log_analyzer/sample_logs/json.log +15 -0
  81. data/examples/log_analyzer/sample_logs/nginx.log +15 -0
  82. data/examples/log_analyzer/sample_logs/rails.log +29 -0
  83. data/examples/multi_work_type/README.adoc +576 -26
  84. data/examples/performance_monitoring.rb +120 -0
  85. data/examples/pipeline_processing/README.adoc +740 -26
  86. data/examples/pipeline_processing/pipeline_processing.rb +2 -2
  87. data/examples/priority_work_example.rb +155 -0
  88. data/examples/producer_subscriber/README.adoc +889 -46
  89. data/examples/scatter_gather/README.adoc +829 -27
  90. data/examples/simple/README.adoc +347 -0
  91. data/examples/specialized_workers/README.adoc +622 -26
  92. data/examples/specialized_workers/specialized_workers.rb +44 -8
  93. data/examples/stream_processor/README.adoc +206 -0
  94. data/examples/stream_processor/stream_processor.rb +284 -0
  95. data/examples/web_scraper/README.adoc +625 -0
  96. data/examples/web_scraper/web_scraper.rb +285 -0
  97. data/examples/workflow/README.adoc +406 -0
  98. data/examples/workflow/circuit_breaker/README.adoc +360 -0
  99. data/examples/workflow/circuit_breaker/circuit_breaker_workflow.rb +225 -0
  100. data/examples/workflow/conditional/README.adoc +483 -0
  101. data/examples/workflow/conditional/conditional_workflow.rb +215 -0
  102. data/examples/workflow/dead_letter_queue/README.adoc +374 -0
  103. data/examples/workflow/dead_letter_queue/dead_letter_queue_workflow.rb +217 -0
  104. data/examples/workflow/fan_out/README.adoc +381 -0
  105. data/examples/workflow/fan_out/fan_out_workflow.rb +202 -0
  106. data/examples/workflow/retry/README.adoc +248 -0
  107. data/examples/workflow/retry/retry_workflow.rb +195 -0
  108. data/examples/workflow/simple_linear/README.adoc +267 -0
  109. data/examples/workflow/simple_linear/simple_linear_workflow.rb +175 -0
  110. data/examples/workflow/simplified/README.adoc +329 -0
  111. data/examples/workflow/simplified/simplified_workflow.rb +222 -0
  112. data/exe/fractor +10 -0
  113. data/lib/fractor/cli.rb +288 -0
  114. data/lib/fractor/configuration.rb +307 -0
  115. data/lib/fractor/continuous_server.rb +60 -65
  116. data/lib/fractor/error_formatter.rb +72 -0
  117. data/lib/fractor/error_report_generator.rb +152 -0
  118. data/lib/fractor/error_reporter.rb +244 -0
  119. data/lib/fractor/error_statistics.rb +147 -0
  120. data/lib/fractor/execution_tracer.rb +162 -0
  121. data/lib/fractor/logger.rb +230 -0
  122. data/lib/fractor/main_loop_handler.rb +406 -0
  123. data/lib/fractor/main_loop_handler3.rb +135 -0
  124. data/lib/fractor/main_loop_handler4.rb +299 -0
  125. data/lib/fractor/performance_metrics_collector.rb +181 -0
  126. data/lib/fractor/performance_monitor.rb +215 -0
  127. data/lib/fractor/performance_report_generator.rb +202 -0
  128. data/lib/fractor/priority_work.rb +93 -0
  129. data/lib/fractor/priority_work_queue.rb +189 -0
  130. data/lib/fractor/result_aggregator.rb +32 -0
  131. data/lib/fractor/shutdown_handler.rb +168 -0
  132. data/lib/fractor/signal_handler.rb +80 -0
  133. data/lib/fractor/supervisor.rb +382 -269
  134. data/lib/fractor/supervisor_logger.rb +88 -0
  135. data/lib/fractor/version.rb +1 -1
  136. data/lib/fractor/work.rb +12 -0
  137. data/lib/fractor/work_distribution_manager.rb +151 -0
  138. data/lib/fractor/work_queue.rb +20 -0
  139. data/lib/fractor/work_result.rb +181 -9
  140. data/lib/fractor/worker.rb +73 -0
  141. data/lib/fractor/workflow/builder.rb +210 -0
  142. data/lib/fractor/workflow/chain_builder.rb +169 -0
  143. data/lib/fractor/workflow/circuit_breaker.rb +183 -0
  144. data/lib/fractor/workflow/circuit_breaker_orchestrator.rb +208 -0
  145. data/lib/fractor/workflow/circuit_breaker_registry.rb +112 -0
  146. data/lib/fractor/workflow/dead_letter_queue.rb +334 -0
  147. data/lib/fractor/workflow/execution_hooks.rb +39 -0
  148. data/lib/fractor/workflow/execution_strategy.rb +225 -0
  149. data/lib/fractor/workflow/execution_trace.rb +134 -0
  150. data/lib/fractor/workflow/helpers.rb +191 -0
  151. data/lib/fractor/workflow/job.rb +290 -0
  152. data/lib/fractor/workflow/job_dependency_validator.rb +120 -0
  153. data/lib/fractor/workflow/logger.rb +110 -0
  154. data/lib/fractor/workflow/pre_execution_context.rb +193 -0
  155. data/lib/fractor/workflow/retry_config.rb +156 -0
  156. data/lib/fractor/workflow/retry_orchestrator.rb +184 -0
  157. data/lib/fractor/workflow/retry_strategy.rb +93 -0
  158. data/lib/fractor/workflow/structured_logger.rb +30 -0
  159. data/lib/fractor/workflow/type_compatibility_validator.rb +222 -0
  160. data/lib/fractor/workflow/visualizer.rb +211 -0
  161. data/lib/fractor/workflow/workflow_context.rb +132 -0
  162. data/lib/fractor/workflow/workflow_executor.rb +669 -0
  163. data/lib/fractor/workflow/workflow_result.rb +55 -0
  164. data/lib/fractor/workflow/workflow_validator.rb +295 -0
  165. data/lib/fractor/workflow.rb +333 -0
  166. data/lib/fractor/wrapped_ractor.rb +66 -101
  167. data/lib/fractor/wrapped_ractor3.rb +161 -0
  168. data/lib/fractor/wrapped_ractor4.rb +242 -0
  169. data/lib/fractor.rb +92 -4
  170. metadata +179 -6
  171. data/tests/sample.rb.bak +0 -309
  172. data/tests/sample_working.rb.bak +0 -209
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80a673f8ff411292c2b4c73440475b1dd0ded1873d12a787eb09945bcb975168
4
- data.tar.gz: 2c3474340398fc56506c343829b292baa836b7ed383264d5817ce7e06e7a049c
3
+ metadata.gz: e02a928040e2df09a69eda8ffa10367d5e698868a44643912a747a99b27111fa
4
+ data.tar.gz: e02247543fd89c0856ac6ce8e18c538ef32c5e1f82bce856b666b7db51b49d26
5
5
  SHA512:
6
- metadata.gz: 4f71dcaba51327b6df103a8e43671bc5f751165c05da4dbdc4b23ac55326ba7d743028bf8d94a9ea3298291251ff7b52b67371abc53ce06f19d540d78af37a9f
7
- data.tar.gz: a74f2b9f871dfd8c9bd867a6b562800703c23525a4f2fcc19eec77626685524aec1bcae46e8859e15734cf7153dd6c866e22911e4cc4ea12ac48737adeac1df2
6
+ metadata.gz: 8b664bc5b52225acc157a3f37a1ae97a6a621c08398d2de6b7759a03aceb1bb356d7242da173d6f16f331e0433ab29b60b067250b57422ab5d3c9bed2a284cc5
7
+ data.tar.gz: 26fa65f4a034857688d3fd45f0702eed50a9c07262107e4a43b1da0d77656988137a5242c661e03ef571aa35cfb1ed11a9e48b7fa17f626e74eb5ab71111a3d8
data/.rubocop_todo.yml CHANGED
@@ -1,204 +1,329 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-10-17 09:59:37 UTC using RuboCop version 1.81.1.
3
+ # on 2026-01-22 06:39:26 UTC using RuboCop version 1.82.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 1
10
- # Configuration parameters: Severity.
11
10
  Gemspec/RequiredRubyVersion:
12
11
  Exclude:
13
12
  - 'fractor.gemspec'
14
13
 
15
- # Offense count: 1
16
- # This cop supports safe autocorrection (--autocorrect).
17
- Layout/ElseAlignment:
18
- Exclude:
19
- - 'lib/fractor/wrapped_ractor.rb'
20
-
21
- # Offense count: 1
22
- # This cop supports safe autocorrection (--autocorrect).
23
- # Configuration parameters: EnforcedStyleAlignWith, Severity.
24
- # SupportedStylesAlignWith: keyword, variable, start_of_line
25
- Layout/EndAlignment:
26
- Exclude:
27
- - 'lib/fractor/wrapped_ractor.rb'
28
-
29
- # Offense count: 1
14
+ # Offense count: 4
30
15
  # This cop supports safe autocorrection (--autocorrect).
31
- # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
32
- # SupportedHashRocketStyles: key, separator, table
33
- # SupportedColonStyles: key, separator, table
34
- # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
35
- Layout/HashAlignment:
16
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
17
+ # SupportedStyles: with_first_argument, with_fixed_indentation
18
+ Layout/ArgumentAlignment:
36
19
  Exclude:
37
- - 'lib/fractor/wrapped_ractor.rb'
20
+ - 'spec/fractor/main_loop_handler3_spec.rb'
21
+ - 'spec/fractor/main_loop_handler4_spec.rb'
22
+ - 'spec/fractor/supervisor_shutdown_spec.rb'
38
23
 
39
24
  # Offense count: 2
40
25
  # This cop supports safe autocorrection (--autocorrect).
41
- # Configuration parameters: Width, AllowedPatterns.
42
- Layout/IndentationWidth:
26
+ # Configuration parameters: EnforcedStyleAlignWith.
27
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
28
+ Layout/BlockAlignment:
43
29
  Exclude:
44
- - 'lib/fractor/wrapped_ractor.rb'
30
+ - 'spec/fractor/main_loop_handler3_spec.rb'
31
+ - 'spec/fractor/main_loop_handler4_spec.rb'
45
32
 
46
- # Offense count: 86
33
+ # Offense count: 455
47
34
  # This cop supports safe autocorrection (--autocorrect).
48
- # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
35
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
49
36
  # URISchemes: http, https
50
37
  Layout/LineLength:
51
- Exclude:
52
- - 'fractor.gemspec'
53
- - 'lib/fractor/result_aggregator.rb'
54
- - 'lib/fractor/supervisor.rb'
55
- - 'lib/fractor/wrapped_ractor.rb'
56
- - 'spec/fixtures/long_running_fractor.rb'
57
- - 'spec/fractor/integration_spec.rb'
58
- - 'spec/fractor/signal_handling_spec.rb'
59
- - 'spec/fractor/supervisor_spec.rb'
60
- - 'spec/fractor/wrapped_ractor_spec.rb'
38
+ Enabled: false
61
39
 
62
- # Offense count: 1
40
+ # Offense count: 4
63
41
  # This cop supports safe autocorrection (--autocorrect).
64
42
  # Configuration parameters: AllowInHeredoc.
65
43
  Layout/TrailingWhitespace:
66
44
  Exclude:
67
- - 'lib/fractor/wrapped_ractor.rb'
45
+ - 'spec/fractor/main_loop_handler3_spec.rb'
46
+ - 'spec/fractor/main_loop_handler4_spec.rb'
47
+ - 'spec/fractor/supervisor_shutdown_spec.rb'
68
48
 
69
- # Offense count: 3
49
+ # Offense count: 1
50
+ Lint/BinaryOperatorWithIdenticalOperands:
51
+ Exclude:
52
+ - 'spec/fractor/priority_work_spec.rb'
53
+
54
+ # Offense count: 14
70
55
  # Configuration parameters: AllowedMethods.
71
56
  # AllowedMethods: enums
72
57
  Lint/ConstantDefinitionInBlock:
73
58
  Exclude:
59
+ - 'spec/examples/error_reporting_spec.rb'
60
+ - 'spec/examples/performance_monitoring_spec.rb'
61
+ - 'spec/examples/priority_work_example_spec.rb'
74
62
  - 'spec/fractor/integration_spec.rb'
75
63
  - 'spec/fractor/work_spec.rb'
64
+ - 'spec/fractor/worker_timeout_spec.rb'
65
+ - 'spec/fractor/workflow/execution_strategy_spec.rb'
66
+
67
+ # Offense count: 6
68
+ # Configuration parameters: AllowComments, AllowEmptyLambdas.
69
+ Lint/EmptyBlock:
70
+ Exclude:
71
+ - 'spec/fractor/main_loop_handler4_spec.rb'
72
+ - 'spec/fractor/shutdown_handler_spec.rb'
76
73
 
77
74
  # Offense count: 4
75
+ Lint/HashCompareByIdentity:
76
+ Exclude:
77
+ - 'lib/fractor/work_distribution_manager.rb'
78
+ - 'spec/fractor/work_distribution_manager_spec.rb'
79
+
80
+ # Offense count: 1
81
+ # Configuration parameters: AllowedParentClasses.
82
+ Lint/MissingSuper:
83
+ Exclude:
84
+ - 'spec/fractor/wrapped_ractor3_spec.rb'
85
+
86
+ # Offense count: 5
78
87
  Lint/RescueException:
79
88
  Exclude:
80
- - 'lib/fractor/supervisor.rb'
89
+ - 'lib/fractor/signal_handler.rb'
81
90
  - 'lib/fractor/wrapped_ractor.rb'
91
+ - 'lib/fractor/wrapped_ractor3.rb'
92
+ - 'lib/fractor/wrapped_ractor4.rb'
82
93
 
83
- # Offense count: 8
94
+ # Offense count: 4
95
+ # This cop supports safe autocorrection (--autocorrect).
96
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
97
+ # NotImplementedExceptions: NotImplementedError
98
+ Lint/UnusedMethodArgument:
99
+ Exclude:
100
+ - 'lib/fractor/workflow.rb'
101
+ - 'lib/fractor/wrapped_ractor3.rb'
102
+ - 'spec/fractor/wrapped_ractor3_spec.rb'
103
+
104
+ # Offense count: 88
84
105
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
85
106
  Metrics/AbcSize:
86
- Exclude:
87
- - 'lib/fractor/supervisor.rb'
88
- - 'lib/fractor/wrapped_ractor.rb'
107
+ Enabled: false
89
108
 
90
- # Offense count: 2
109
+ # Offense count: 8
91
110
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
92
111
  # AllowedMethods: refine
93
112
  Metrics/BlockLength:
94
- Max: 47
113
+ Max: 105
95
114
 
96
- # Offense count: 2
97
- # Configuration parameters: CountBlocks, CountModifierForms.
98
- Metrics/BlockNesting:
99
- Max: 5
100
-
101
- # Offense count: 7
115
+ # Offense count: 61
102
116
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
103
117
  Metrics/CyclomaticComplexity:
104
- Exclude:
105
- - 'lib/fractor/supervisor.rb'
106
- - 'lib/fractor/wrapped_ractor.rb'
118
+ Enabled: false
107
119
 
108
- # Offense count: 14
120
+ # Offense count: 142
109
121
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
110
122
  Metrics/MethodLength:
111
- Max: 158
123
+ Max: 117
124
+
125
+ # Offense count: 9
126
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
127
+ Metrics/ParameterLists:
128
+ Max: 9
112
129
 
113
- # Offense count: 7
130
+ # Offense count: 46
114
131
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
115
132
  Metrics/PerceivedComplexity:
133
+ Enabled: false
134
+
135
+ # Offense count: 4
136
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
137
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
138
+ Naming/MethodParameterName:
116
139
  Exclude:
140
+ - 'lib/fractor/performance_metrics_collector.rb'
141
+ - 'lib/fractor/workflow/job.rb'
142
+
143
+ # Offense count: 1
144
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros, UseSorbetSigs.
145
+ # NamePrefix: is_, has_, have_, does_
146
+ # ForbiddenPrefixes: is_, has_, have_, does_
147
+ # AllowedMethods: is_a?
148
+ # MethodDefinitionMacros: define_method, define_singleton_method
149
+ Naming/PredicatePrefix:
150
+ Exclude:
151
+ - '../../../.cache/rubocop_cache/spec/**/*'
152
+ - 'spec/support/workflow_helpers.rb'
153
+
154
+ # Offense count: 9
155
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
156
+ # SupportedStyles: snake_case, normalcase, non_integer
157
+ # AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
158
+ Naming/VariableNumber:
159
+ Exclude:
160
+ - 'lib/fractor/error_statistics.rb'
161
+ - 'lib/fractor/main_loop_handler.rb'
162
+ - 'lib/fractor/main_loop_handler4.rb'
117
163
  - 'lib/fractor/supervisor.rb'
118
164
  - 'lib/fractor/wrapped_ractor.rb'
165
+ - 'spec/examples/error_reporting_spec.rb'
166
+ - 'spec/fractor/workflow/retry_orchestrator_spec.rb'
119
167
 
120
- # Offense count: 1
168
+ # Offense count: 2
121
169
  # Configuration parameters: MinSize.
122
170
  Performance/CollectionLiteralInLoop:
123
171
  Exclude:
124
172
  - 'lib/fractor/supervisor.rb'
125
173
 
126
- # Offense count: 3
127
- # This cop supports unsafe autocorrection (--autocorrect-all).
128
- Performance/TimesMap:
129
- Exclude:
130
- - 'spec/fractor/work_queue_spec.rb'
131
-
132
- # Offense count: 2
174
+ # Offense count: 26
133
175
  # Configuration parameters: Prefixes, AllowedPatterns.
134
176
  # Prefixes: when, with, without
135
177
  RSpec/ContextWording:
136
178
  Exclude:
179
+ - 'spec/examples/continuous_chat_fractor_spec.rb'
180
+ - 'spec/examples/multi_work_type_spec.rb'
181
+ - 'spec/examples/pipeline_processing_spec.rb'
182
+ - 'spec/examples/producer_subscriber_spec.rb'
183
+ - 'spec/examples/scatter_gather_spec.rb'
184
+ - 'spec/examples/simple_spec.rb'
137
185
  - 'spec/fractor/supervisor_spec.rb'
138
186
  - 'spec/fractor_spec.rb'
139
187
 
140
- # Offense count: 2
188
+ # Offense count: 27
141
189
  # Configuration parameters: IgnoredMetadata.
142
190
  RSpec/DescribeClass:
191
+ Enabled: false
192
+
193
+ # Offense count: 3
194
+ # This cop supports unsafe autocorrection (--autocorrect-all).
195
+ # Configuration parameters: SkipBlocks, EnforcedStyle, OnlyStaticConstants.
196
+ # SupportedStyles: described_class, explicit
197
+ RSpec/DescribedClass:
143
198
  Exclude:
144
- - '**/spec/features/**/*'
145
- - '**/spec/requests/**/*'
146
- - '**/spec/routing/**/*'
147
- - '**/spec/system/**/*'
148
- - '**/spec/views/**/*'
149
- - 'spec/fractor/integration_spec.rb'
150
- - 'spec/fractor/signal_handling_spec.rb'
199
+ - 'spec/fractor/worker_spec.rb'
200
+ - 'spec/fractor/worker_timeout_spec.rb'
151
201
 
152
- # Offense count: 36
202
+ # Offense count: 510
153
203
  # Configuration parameters: CountAsOne.
154
204
  RSpec/ExampleLength:
155
- Max: 28
205
+ Max: 47
156
206
 
157
- # Offense count: 1
207
+ # Offense count: 3
158
208
  # This cop supports safe autocorrection (--autocorrect).
159
209
  RSpec/ExpectActual:
160
210
  Exclude:
161
211
  - '**/spec/routing/**/*'
212
+ - 'spec/fractor/configuration_spec.rb'
213
+ - 'spec/fractor/workflow/pre_execution_context_spec.rb'
162
214
  - 'spec/fractor/wrapped_ractor_spec.rb'
163
215
 
216
+ # Offense count: 3
217
+ RSpec/ExpectInHook:
218
+ Exclude:
219
+ - 'spec/fractor/workflow/circuit_breaker_spec.rb'
220
+
221
+ # Offense count: 2
222
+ RSpec/ExpectOutput:
223
+ Exclude:
224
+ - 'spec/fractor/workflow/type_compatibility_validator_spec.rb'
225
+
164
226
  # Offense count: 1
227
+ RSpec/IdenticalEqualityAssertion:
228
+ Exclude:
229
+ - 'spec/fractor/workflow/pre_execution_context_spec.rb'
230
+
231
+ # Offense count: 21
232
+ # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
233
+ RSpec/IndexedLet:
234
+ Exclude:
235
+ - 'spec/examples/workflow/simplified_workflow_spec.rb'
236
+ - 'spec/fractor/main_loop_handler3_spec.rb'
237
+ - 'spec/fractor/main_loop_handler4_spec.rb'
238
+ - 'spec/fractor/main_loop_handler_spec.rb'
239
+ - 'spec/fractor/shutdown_handler_spec.rb'
240
+ - 'spec/fractor/work_distribution_manager_spec.rb'
241
+
242
+ # Offense count: 6
165
243
  # Configuration parameters: AssignmentOnly.
166
244
  RSpec/InstanceVariable:
167
245
  Exclude:
246
+ - 'spec/examples/workflow/dead_letter_queue_workflow_spec.rb'
168
247
  - 'spec/fractor/integration_spec.rb'
169
248
 
170
- # Offense count: 3
249
+ # Offense count: 16
171
250
  RSpec/LeakyConstantDeclaration:
172
251
  Exclude:
252
+ - 'spec/examples/error_reporting_spec.rb'
253
+ - 'spec/examples/performance_monitoring_spec.rb'
254
+ - 'spec/examples/priority_work_example_spec.rb'
173
255
  - 'spec/fractor/integration_spec.rb'
174
256
  - 'spec/fractor/work_spec.rb'
257
+ - 'spec/fractor/worker_timeout_spec.rb'
258
+ - 'spec/fractor/workflow/execution_strategy_spec.rb'
259
+
260
+ # Offense count: 19
261
+ # Configuration parameters: EnforcedStyle.
262
+ # SupportedStyles: have_received, receive
263
+ RSpec/MessageSpies:
264
+ Exclude:
265
+ - 'spec/fractor/main_loop_handler_spec.rb'
266
+ - 'spec/fractor/shutdown_handler_spec.rb'
267
+
268
+ # Offense count: 6
269
+ RSpec/MultipleDescribes:
270
+ Exclude:
271
+ - 'spec/examples/workflow/simplified_workflow_spec.rb'
272
+ - 'spec/fractor/worker_timeout_spec.rb'
273
+ - 'spec/fractor/workflow/dead_letter_queue_spec.rb'
274
+ - 'spec/fractor/workflow/execution_strategy_spec.rb'
275
+ - 'spec/fractor/workflow/retry_config_spec.rb'
276
+ - 'spec/fractor/workflow/retry_strategy_spec.rb'
175
277
 
176
- # Offense count: 35
278
+ # Offense count: 605
177
279
  RSpec/MultipleExpectations:
178
- Max: 7
280
+ Max: 12
179
281
 
180
- # Offense count: 1
181
- # This cop supports safe autocorrection (--autocorrect).
182
- # Configuration parameters: EnforcedStyle, AllowComments.
183
- # SupportedStyles: empty, nil, both
184
- Style/EmptyElse:
282
+ # Offense count: 50
283
+ # Configuration parameters: AllowSubject.
284
+ RSpec/MultipleMemoizedHelpers:
285
+ Max: 9
286
+
287
+ # Offense count: 4
288
+ # Configuration parameters: AllowedGroups.
289
+ RSpec/NestedGroups:
290
+ Max: 4
291
+
292
+ # Offense count: 3
293
+ # Configuration parameters: AllowedPatterns.
294
+ # AllowedPatterns: ^expect_, ^assert_
295
+ RSpec/NoExpectationExample:
185
296
  Exclude:
186
- - 'lib/fractor/supervisor.rb'
297
+ - 'spec/fractor/main_loop_handler_spec.rb'
298
+ - 'spec/fractor/wrapped_ractor4_spec.rb'
299
+
300
+ # Offense count: 2
301
+ RSpec/RepeatedExample:
302
+ Exclude:
303
+ - 'spec/fractor/main_loop_handler3_spec.rb'
304
+
305
+ # Offense count: 3
306
+ RSpec/StubbedMock:
307
+ Exclude:
308
+ - 'spec/fractor/main_loop_handler_spec.rb'
309
+
310
+ # Offense count: 19
311
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
312
+ RSpec/VerifiedDoubles:
313
+ Exclude:
314
+ - 'spec/fractor/shutdown_handler_spec.rb'
315
+ - 'spec/fractor/work_distribution_manager_spec.rb'
316
+ - 'spec/fractor/workflow/circuit_breaker_orchestrator_spec.rb'
317
+ - 'spec/fractor/workflow/retry_orchestrator_spec.rb'
187
318
 
188
319
  # Offense count: 1
189
- # This cop supports safe autocorrection (--autocorrect).
190
- # Configuration parameters: .
191
- # SupportedStyles: percent, brackets
192
- Style/SymbolArray:
193
- EnforcedStyle: percent
194
- MinSize: 3
320
+ Security/Eval:
321
+ Exclude:
322
+ - 'lib/fractor/cli.rb'
195
323
 
196
- # Offense count: 16
197
- # This cop supports safe autocorrection (--autocorrect).
198
- # Configuration parameters: EnforcedStyleForMultiline.
199
- # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
200
- Style/TrailingCommaInArguments:
324
+ # Offense count: 1
325
+ # Configuration parameters: AllowedMethods.
326
+ # AllowedMethods: respond_to_missing?
327
+ Style/OptionalBooleanParameter:
201
328
  Exclude:
202
- - 'lib/fractor/continuous_server.rb'
203
- - 'spec/fractor/continuous_server_spec.rb'
204
- - 'spec/fractor/work_queue_spec.rb'
329
+ - 'lib/fractor/workflow/job.rb'