fractor 0.1.4 → 0.1.7

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 (189) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop-https---raw-githubusercontent-com-riboseinc-oss-guides-main-ci-rubocop-yml +552 -0
  3. data/.rubocop.yml +14 -8
  4. data/.rubocop_todo.yml +284 -43
  5. data/README.adoc +111 -950
  6. data/docs/.lycheeignore +16 -0
  7. data/docs/Gemfile +24 -0
  8. data/docs/README.md +157 -0
  9. data/docs/_config.yml +151 -0
  10. data/docs/_features/error-handling.adoc +1192 -0
  11. data/docs/_features/index.adoc +80 -0
  12. data/docs/_features/monitoring.adoc +589 -0
  13. data/docs/_features/signal-handling.adoc +202 -0
  14. data/docs/_features/workflows.adoc +1235 -0
  15. data/docs/_guides/continuous-mode.adoc +736 -0
  16. data/docs/_guides/cookbook.adoc +1133 -0
  17. data/docs/_guides/index.adoc +55 -0
  18. data/docs/_guides/pipeline-mode.adoc +730 -0
  19. data/docs/_guides/troubleshooting.adoc +358 -0
  20. data/docs/_pages/architecture.adoc +1390 -0
  21. data/docs/_pages/core-concepts.adoc +1392 -0
  22. data/docs/_pages/design-principles.adoc +862 -0
  23. data/docs/_pages/getting-started.adoc +290 -0
  24. data/docs/_pages/installation.adoc +143 -0
  25. data/docs/_reference/api.adoc +1080 -0
  26. data/docs/_reference/error-reporting.adoc +670 -0
  27. data/docs/_reference/examples.adoc +181 -0
  28. data/docs/_reference/index.adoc +96 -0
  29. data/docs/_reference/troubleshooting.adoc +862 -0
  30. data/docs/_tutorials/complex-workflows.adoc +1022 -0
  31. data/docs/_tutorials/data-processing-pipeline.adoc +740 -0
  32. data/docs/_tutorials/first-application.adoc +384 -0
  33. data/docs/_tutorials/index.adoc +48 -0
  34. data/docs/_tutorials/long-running-services.adoc +931 -0
  35. data/docs/assets/images/favicon-16.png +0 -0
  36. data/docs/assets/images/favicon-32.png +0 -0
  37. data/docs/assets/images/favicon-48.png +0 -0
  38. data/docs/assets/images/favicon.ico +0 -0
  39. data/docs/assets/images/favicon.png +0 -0
  40. data/docs/assets/images/favicon.svg +45 -0
  41. data/docs/assets/images/fractor-icon.svg +49 -0
  42. data/docs/assets/images/fractor-logo.svg +61 -0
  43. data/docs/index.adoc +131 -0
  44. data/docs/lychee.toml +39 -0
  45. data/examples/api_aggregator/README.adoc +627 -0
  46. data/examples/api_aggregator/api_aggregator.rb +376 -0
  47. data/examples/auto_detection/README.adoc +407 -29
  48. data/examples/auto_detection/auto_detection.rb +9 -9
  49. data/examples/continuous_chat_common/message_protocol.rb +53 -0
  50. data/examples/continuous_chat_fractor/README.adoc +217 -0
  51. data/examples/continuous_chat_fractor/chat_client.rb +303 -0
  52. data/examples/continuous_chat_fractor/chat_common.rb +83 -0
  53. data/examples/continuous_chat_fractor/chat_server.rb +167 -0
  54. data/examples/continuous_chat_fractor/simulate.rb +345 -0
  55. data/examples/continuous_chat_server/README.adoc +135 -0
  56. data/examples/continuous_chat_server/chat_client.rb +303 -0
  57. data/examples/continuous_chat_server/chat_server.rb +359 -0
  58. data/examples/continuous_chat_server/simulate.rb +343 -0
  59. data/examples/error_reporting.rb +207 -0
  60. data/examples/file_processor/README.adoc +170 -0
  61. data/examples/file_processor/file_processor.rb +615 -0
  62. data/examples/file_processor/sample_files/invalid.csv +1 -0
  63. data/examples/file_processor/sample_files/orders.xml +24 -0
  64. data/examples/file_processor/sample_files/products.json +23 -0
  65. data/examples/file_processor/sample_files/users.csv +6 -0
  66. data/examples/hierarchical_hasher/README.adoc +629 -41
  67. data/examples/hierarchical_hasher/hierarchical_hasher.rb +12 -8
  68. data/examples/image_processor/README.adoc +610 -0
  69. data/examples/image_processor/image_processor.rb +349 -0
  70. data/examples/image_processor/processed_images/sample_10_processed.jpg.json +12 -0
  71. data/examples/image_processor/processed_images/sample_1_processed.jpg.json +12 -0
  72. data/examples/image_processor/processed_images/sample_2_processed.jpg.json +12 -0
  73. data/examples/image_processor/processed_images/sample_3_processed.jpg.json +12 -0
  74. data/examples/image_processor/processed_images/sample_4_processed.jpg.json +12 -0
  75. data/examples/image_processor/processed_images/sample_5_processed.jpg.json +12 -0
  76. data/examples/image_processor/processed_images/sample_6_processed.jpg.json +12 -0
  77. data/examples/image_processor/processed_images/sample_7_processed.jpg.json +12 -0
  78. data/examples/image_processor/processed_images/sample_8_processed.jpg.json +12 -0
  79. data/examples/image_processor/processed_images/sample_9_processed.jpg.json +12 -0
  80. data/examples/image_processor/test_images/sample_1.png +1 -0
  81. data/examples/image_processor/test_images/sample_10.png +1 -0
  82. data/examples/image_processor/test_images/sample_2.png +1 -0
  83. data/examples/image_processor/test_images/sample_3.png +1 -0
  84. data/examples/image_processor/test_images/sample_4.png +1 -0
  85. data/examples/image_processor/test_images/sample_5.png +1 -0
  86. data/examples/image_processor/test_images/sample_6.png +1 -0
  87. data/examples/image_processor/test_images/sample_7.png +1 -0
  88. data/examples/image_processor/test_images/sample_8.png +1 -0
  89. data/examples/image_processor/test_images/sample_9.png +1 -0
  90. data/examples/log_analyzer/README.adoc +662 -0
  91. data/examples/log_analyzer/log_analyzer.rb +579 -0
  92. data/examples/log_analyzer/sample_logs/apache.log +20 -0
  93. data/examples/log_analyzer/sample_logs/json.log +15 -0
  94. data/examples/log_analyzer/sample_logs/nginx.log +15 -0
  95. data/examples/log_analyzer/sample_logs/rails.log +29 -0
  96. data/examples/multi_work_type/README.adoc +576 -26
  97. data/examples/multi_work_type/multi_work_type.rb +30 -29
  98. data/examples/performance_monitoring.rb +120 -0
  99. data/examples/pipeline_processing/README.adoc +740 -26
  100. data/examples/pipeline_processing/pipeline_processing.rb +16 -16
  101. data/examples/priority_work_example.rb +155 -0
  102. data/examples/producer_subscriber/README.adoc +889 -46
  103. data/examples/producer_subscriber/producer_subscriber.rb +20 -16
  104. data/examples/scatter_gather/README.adoc +829 -27
  105. data/examples/scatter_gather/scatter_gather.rb +29 -28
  106. data/examples/simple/README.adoc +347 -0
  107. data/examples/simple/sample.rb +5 -5
  108. data/examples/specialized_workers/README.adoc +622 -26
  109. data/examples/specialized_workers/specialized_workers.rb +88 -45
  110. data/examples/stream_processor/README.adoc +206 -0
  111. data/examples/stream_processor/stream_processor.rb +284 -0
  112. data/examples/web_scraper/README.adoc +625 -0
  113. data/examples/web_scraper/web_scraper.rb +285 -0
  114. data/examples/workflow/README.adoc +406 -0
  115. data/examples/workflow/circuit_breaker/README.adoc +360 -0
  116. data/examples/workflow/circuit_breaker/circuit_breaker_workflow.rb +225 -0
  117. data/examples/workflow/conditional/README.adoc +483 -0
  118. data/examples/workflow/conditional/conditional_workflow.rb +215 -0
  119. data/examples/workflow/dead_letter_queue/README.adoc +374 -0
  120. data/examples/workflow/dead_letter_queue/dead_letter_queue_workflow.rb +217 -0
  121. data/examples/workflow/fan_out/README.adoc +381 -0
  122. data/examples/workflow/fan_out/fan_out_workflow.rb +202 -0
  123. data/examples/workflow/retry/README.adoc +248 -0
  124. data/examples/workflow/retry/retry_workflow.rb +195 -0
  125. data/examples/workflow/simple_linear/README.adoc +267 -0
  126. data/examples/workflow/simple_linear/simple_linear_workflow.rb +175 -0
  127. data/examples/workflow/simplified/README.adoc +329 -0
  128. data/examples/workflow/simplified/simplified_workflow.rb +222 -0
  129. data/exe/fractor +10 -0
  130. data/lib/fractor/cli.rb +288 -0
  131. data/lib/fractor/configuration.rb +307 -0
  132. data/lib/fractor/continuous_server.rb +183 -0
  133. data/lib/fractor/error_formatter.rb +72 -0
  134. data/lib/fractor/error_report_generator.rb +152 -0
  135. data/lib/fractor/error_reporter.rb +244 -0
  136. data/lib/fractor/error_statistics.rb +147 -0
  137. data/lib/fractor/execution_tracer.rb +162 -0
  138. data/lib/fractor/logger.rb +230 -0
  139. data/lib/fractor/main_loop_handler.rb +406 -0
  140. data/lib/fractor/main_loop_handler3.rb +135 -0
  141. data/lib/fractor/main_loop_handler4.rb +299 -0
  142. data/lib/fractor/performance_metrics_collector.rb +181 -0
  143. data/lib/fractor/performance_monitor.rb +215 -0
  144. data/lib/fractor/performance_report_generator.rb +202 -0
  145. data/lib/fractor/priority_work.rb +93 -0
  146. data/lib/fractor/priority_work_queue.rb +189 -0
  147. data/lib/fractor/result_aggregator.rb +33 -1
  148. data/lib/fractor/shutdown_handler.rb +168 -0
  149. data/lib/fractor/signal_handler.rb +80 -0
  150. data/lib/fractor/supervisor.rb +430 -144
  151. data/lib/fractor/supervisor_logger.rb +88 -0
  152. data/lib/fractor/version.rb +1 -1
  153. data/lib/fractor/work.rb +12 -0
  154. data/lib/fractor/work_distribution_manager.rb +151 -0
  155. data/lib/fractor/work_queue.rb +88 -0
  156. data/lib/fractor/work_result.rb +181 -9
  157. data/lib/fractor/worker.rb +75 -1
  158. data/lib/fractor/workflow/builder.rb +210 -0
  159. data/lib/fractor/workflow/chain_builder.rb +169 -0
  160. data/lib/fractor/workflow/circuit_breaker.rb +183 -0
  161. data/lib/fractor/workflow/circuit_breaker_orchestrator.rb +208 -0
  162. data/lib/fractor/workflow/circuit_breaker_registry.rb +112 -0
  163. data/lib/fractor/workflow/dead_letter_queue.rb +334 -0
  164. data/lib/fractor/workflow/execution_hooks.rb +39 -0
  165. data/lib/fractor/workflow/execution_strategy.rb +225 -0
  166. data/lib/fractor/workflow/execution_trace.rb +134 -0
  167. data/lib/fractor/workflow/helpers.rb +191 -0
  168. data/lib/fractor/workflow/job.rb +290 -0
  169. data/lib/fractor/workflow/job_dependency_validator.rb +120 -0
  170. data/lib/fractor/workflow/logger.rb +110 -0
  171. data/lib/fractor/workflow/pre_execution_context.rb +193 -0
  172. data/lib/fractor/workflow/retry_config.rb +156 -0
  173. data/lib/fractor/workflow/retry_orchestrator.rb +184 -0
  174. data/lib/fractor/workflow/retry_strategy.rb +93 -0
  175. data/lib/fractor/workflow/structured_logger.rb +30 -0
  176. data/lib/fractor/workflow/type_compatibility_validator.rb +222 -0
  177. data/lib/fractor/workflow/visualizer.rb +211 -0
  178. data/lib/fractor/workflow/workflow_context.rb +132 -0
  179. data/lib/fractor/workflow/workflow_executor.rb +669 -0
  180. data/lib/fractor/workflow/workflow_result.rb +55 -0
  181. data/lib/fractor/workflow/workflow_validator.rb +295 -0
  182. data/lib/fractor/workflow.rb +333 -0
  183. data/lib/fractor/wrapped_ractor.rb +66 -91
  184. data/lib/fractor/wrapped_ractor3.rb +161 -0
  185. data/lib/fractor/wrapped_ractor4.rb +242 -0
  186. data/lib/fractor.rb +93 -3
  187. metadata +192 -6
  188. data/tests/sample.rb.bak +0 -309
  189. data/tests/sample_working.rb.bak +0 -209
data/.rubocop_todo.yml CHANGED
@@ -1,88 +1,329 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-10-09 11:44:45 UTC using RuboCop version 1.75.4.
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
- # Offense count: 3
9
+ # Offense count: 1
10
+ Gemspec/RequiredRubyVersion:
11
+ Exclude:
12
+ - 'fractor.gemspec'
13
+
14
+ # Offense count: 4
15
+ # This cop supports safe autocorrection (--autocorrect).
16
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
17
+ # SupportedStyles: with_first_argument, with_fixed_indentation
18
+ Layout/ArgumentAlignment:
19
+ Exclude:
20
+ - 'spec/fractor/main_loop_handler3_spec.rb'
21
+ - 'spec/fractor/main_loop_handler4_spec.rb'
22
+ - 'spec/fractor/supervisor_shutdown_spec.rb'
23
+
24
+ # Offense count: 2
25
+ # This cop supports safe autocorrection (--autocorrect).
26
+ # Configuration parameters: EnforcedStyleAlignWith.
27
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
28
+ Layout/BlockAlignment:
29
+ Exclude:
30
+ - 'spec/fractor/main_loop_handler3_spec.rb'
31
+ - 'spec/fractor/main_loop_handler4_spec.rb'
32
+
33
+ # Offense count: 455
34
+ # This cop supports safe autocorrection (--autocorrect).
35
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
36
+ # URISchemes: http, https
37
+ Layout/LineLength:
38
+ Enabled: false
39
+
40
+ # Offense count: 4
41
+ # This cop supports safe autocorrection (--autocorrect).
42
+ # Configuration parameters: AllowInHeredoc.
43
+ Layout/TrailingWhitespace:
44
+ Exclude:
45
+ - 'spec/fractor/main_loop_handler3_spec.rb'
46
+ - 'spec/fractor/main_loop_handler4_spec.rb'
47
+ - 'spec/fractor/supervisor_shutdown_spec.rb'
48
+
49
+ # Offense count: 1
50
+ Lint/BinaryOperatorWithIdenticalOperands:
51
+ Exclude:
52
+ - 'spec/fractor/priority_work_spec.rb'
53
+
54
+ # Offense count: 14
10
55
  # Configuration parameters: AllowedMethods.
11
56
  # AllowedMethods: enums
12
57
  Lint/ConstantDefinitionInBlock:
13
58
  Exclude:
59
+ - 'spec/examples/error_reporting_spec.rb'
60
+ - 'spec/examples/performance_monitoring_spec.rb'
61
+ - 'spec/examples/priority_work_example_spec.rb'
14
62
  - 'spec/fractor/integration_spec.rb'
15
63
  - 'spec/fractor/work_spec.rb'
64
+ - 'spec/fractor/worker_timeout_spec.rb'
65
+ - 'spec/fractor/workflow/execution_strategy_spec.rb'
16
66
 
17
- # Offense count: 1
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'
73
+
74
+ # Offense count: 4
18
75
  Lint/HashCompareByIdentity:
19
76
  Exclude:
20
- - 'examples/producer_subscriber/producer_subscriber.rb'
77
+ - 'lib/fractor/work_distribution_manager.rb'
78
+ - 'spec/fractor/work_distribution_manager_spec.rb'
21
79
 
22
- # Offense count: 2
80
+ # Offense count: 1
23
81
  # Configuration parameters: AllowedParentClasses.
24
82
  Lint/MissingSuper:
25
83
  Exclude:
26
- - 'examples/specialized_workers/specialized_workers.rb'
84
+ - 'spec/fractor/wrapped_ractor3_spec.rb'
27
85
 
28
- # Offense count: 4
86
+ # Offense count: 5
29
87
  Lint/RescueException:
30
88
  Exclude:
31
- - 'lib/fractor/supervisor.rb'
89
+ - 'lib/fractor/signal_handler.rb'
32
90
  - 'lib/fractor/wrapped_ractor.rb'
91
+ - 'lib/fractor/wrapped_ractor3.rb'
92
+ - 'lib/fractor/wrapped_ractor4.rb'
93
+
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'
33
103
 
34
- # Offense count: 24
35
- # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
104
+ # Offense count: 88
105
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
36
106
  Metrics/AbcSize:
37
- Max: 98
107
+ Enabled: false
38
108
 
39
- # Offense count: 15
40
- # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
109
+ # Offense count: 8
110
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
41
111
  # AllowedMethods: refine
42
112
  Metrics/BlockLength:
43
- Max: 142
113
+ Max: 105
44
114
 
45
- # Offense count: 4
46
- # Configuration parameters: CountComments, CountAsOne.
47
- Metrics/ClassLength:
48
- Max: 171
49
-
50
- # Offense count: 9
51
- # Configuration parameters: AllowedMethods, AllowedPatterns.
115
+ # Offense count: 61
116
+ # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
52
117
  Metrics/CyclomaticComplexity:
53
- Max: 37
118
+ Enabled: false
54
119
 
55
- # Offense count: 46
120
+ # Offense count: 142
56
121
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
57
122
  Metrics/MethodLength:
58
- Max: 78
123
+ Max: 117
59
124
 
60
- # Offense count: 1
61
- # Configuration parameters: Max, CountKeywordArgs.
125
+ # Offense count: 9
126
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
62
127
  Metrics/ParameterLists:
63
- MaxOptionalParameters: 4
128
+ Max: 9
64
129
 
65
- # Offense count: 6
66
- # Configuration parameters: AllowedMethods, AllowedPatterns.
130
+ # Offense count: 46
131
+ # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
67
132
  Metrics/PerceivedComplexity:
68
- Max: 37
133
+ Enabled: false
69
134
 
70
- # Offense count: 1
71
- Security/Eval:
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:
72
139
  Exclude:
73
- - 'examples/multi_work_type/multi_work_type.rb'
140
+ - 'lib/fractor/performance_metrics_collector.rb'
141
+ - 'lib/fractor/workflow/job.rb'
74
142
 
75
143
  # Offense count: 1
76
- # Configuration parameters: AllowedConstants.
77
- Style/Documentation:
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:
78
159
  Exclude:
79
- - 'spec/**/*'
80
- - 'test/**/*'
81
- - 'examples/hierarchical_hasher/hierarchical_hasher.rb'
160
+ - 'lib/fractor/error_statistics.rb'
161
+ - 'lib/fractor/main_loop_handler.rb'
162
+ - 'lib/fractor/main_loop_handler4.rb'
163
+ - 'lib/fractor/supervisor.rb'
164
+ - 'lib/fractor/wrapped_ractor.rb'
165
+ - 'spec/examples/error_reporting_spec.rb'
166
+ - 'spec/fractor/workflow/retry_orchestrator_spec.rb'
82
167
 
83
- # Offense count: 12
168
+ # Offense count: 2
169
+ # Configuration parameters: MinSize.
170
+ Performance/CollectionLiteralInLoop:
171
+ Exclude:
172
+ - 'lib/fractor/supervisor.rb'
173
+
174
+ # Offense count: 26
175
+ # Configuration parameters: Prefixes, AllowedPatterns.
176
+ # Prefixes: when, with, without
177
+ RSpec/ContextWording:
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'
185
+ - 'spec/fractor/supervisor_spec.rb'
186
+ - 'spec/fractor_spec.rb'
187
+
188
+ # Offense count: 27
189
+ # Configuration parameters: IgnoredMetadata.
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:
198
+ Exclude:
199
+ - 'spec/fractor/worker_spec.rb'
200
+ - 'spec/fractor/worker_timeout_spec.rb'
201
+
202
+ # Offense count: 510
203
+ # Configuration parameters: CountAsOne.
204
+ RSpec/ExampleLength:
205
+ Max: 47
206
+
207
+ # Offense count: 3
84
208
  # This cop supports safe autocorrection (--autocorrect).
85
- # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
86
- # URISchemes: http, https
87
- Layout/LineLength:
88
- Max: 160
209
+ RSpec/ExpectActual:
210
+ Exclude:
211
+ - '**/spec/routing/**/*'
212
+ - 'spec/fractor/configuration_spec.rb'
213
+ - 'spec/fractor/workflow/pre_execution_context_spec.rb'
214
+ - 'spec/fractor/wrapped_ractor_spec.rb'
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
+
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
243
+ # Configuration parameters: AssignmentOnly.
244
+ RSpec/InstanceVariable:
245
+ Exclude:
246
+ - 'spec/examples/workflow/dead_letter_queue_workflow_spec.rb'
247
+ - 'spec/fractor/integration_spec.rb'
248
+
249
+ # Offense count: 16
250
+ RSpec/LeakyConstantDeclaration:
251
+ Exclude:
252
+ - 'spec/examples/error_reporting_spec.rb'
253
+ - 'spec/examples/performance_monitoring_spec.rb'
254
+ - 'spec/examples/priority_work_example_spec.rb'
255
+ - 'spec/fractor/integration_spec.rb'
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'
277
+
278
+ # Offense count: 605
279
+ RSpec/MultipleExpectations:
280
+ Max: 12
281
+
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:
296
+ Exclude:
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'
318
+
319
+ # Offense count: 1
320
+ Security/Eval:
321
+ Exclude:
322
+ - 'lib/fractor/cli.rb'
323
+
324
+ # Offense count: 1
325
+ # Configuration parameters: AllowedMethods.
326
+ # AllowedMethods: respond_to_missing?
327
+ Style/OptionalBooleanParameter:
328
+ Exclude:
329
+ - 'lib/fractor/workflow/job.rb'