cmdx 1.1.2 → 1.5.1

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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.cursor/prompts/docs.md +4 -1
  4. data/.cursor/prompts/llms.md +20 -0
  5. data/.cursor/prompts/rspec.md +4 -1
  6. data/.cursor/prompts/yardoc.md +3 -2
  7. data/.cursor/rules/cursor-instructions.mdc +55 -1
  8. data/.irbrc +6 -0
  9. data/.rubocop.yml +29 -18
  10. data/CHANGELOG.md +11 -132
  11. data/LLM.md +3317 -0
  12. data/README.md +68 -44
  13. data/docs/attributes/coercions.md +162 -0
  14. data/docs/attributes/defaults.md +90 -0
  15. data/docs/attributes/definitions.md +281 -0
  16. data/docs/attributes/naming.md +78 -0
  17. data/docs/attributes/validations.md +309 -0
  18. data/docs/basics/chain.md +56 -249
  19. data/docs/basics/context.md +56 -289
  20. data/docs/basics/execution.md +114 -0
  21. data/docs/basics/setup.md +37 -334
  22. data/docs/callbacks.md +89 -467
  23. data/docs/deprecation.md +91 -174
  24. data/docs/getting_started.md +212 -202
  25. data/docs/internationalization.md +11 -647
  26. data/docs/interruptions/exceptions.md +23 -198
  27. data/docs/interruptions/faults.md +71 -151
  28. data/docs/interruptions/halt.md +109 -186
  29. data/docs/logging.md +44 -256
  30. data/docs/middlewares.md +113 -426
  31. data/docs/outcomes/result.md +81 -228
  32. data/docs/outcomes/states.md +33 -221
  33. data/docs/outcomes/statuses.md +21 -311
  34. data/docs/tips_and_tricks.md +120 -70
  35. data/docs/workflows.md +99 -283
  36. data/lib/cmdx/.DS_Store +0 -0
  37. data/lib/cmdx/attribute.rb +229 -0
  38. data/lib/cmdx/attribute_registry.rb +94 -0
  39. data/lib/cmdx/attribute_value.rb +193 -0
  40. data/lib/cmdx/callback_registry.rb +69 -77
  41. data/lib/cmdx/chain.rb +56 -73
  42. data/lib/cmdx/coercion_registry.rb +52 -68
  43. data/lib/cmdx/coercions/array.rb +19 -18
  44. data/lib/cmdx/coercions/big_decimal.rb +20 -24
  45. data/lib/cmdx/coercions/boolean.rb +26 -25
  46. data/lib/cmdx/coercions/complex.rb +21 -22
  47. data/lib/cmdx/coercions/date.rb +25 -23
  48. data/lib/cmdx/coercions/date_time.rb +24 -25
  49. data/lib/cmdx/coercions/float.rb +25 -22
  50. data/lib/cmdx/coercions/hash.rb +31 -32
  51. data/lib/cmdx/coercions/integer.rb +30 -24
  52. data/lib/cmdx/coercions/rational.rb +29 -24
  53. data/lib/cmdx/coercions/string.rb +19 -22
  54. data/lib/cmdx/coercions/symbol.rb +37 -0
  55. data/lib/cmdx/coercions/time.rb +26 -25
  56. data/lib/cmdx/configuration.rb +49 -108
  57. data/lib/cmdx/context.rb +222 -44
  58. data/lib/cmdx/deprecator.rb +61 -0
  59. data/lib/cmdx/errors.rb +42 -252
  60. data/lib/cmdx/exceptions.rb +39 -0
  61. data/lib/cmdx/faults.rb +78 -39
  62. data/lib/cmdx/freezer.rb +51 -0
  63. data/lib/cmdx/identifier.rb +30 -0
  64. data/lib/cmdx/locale.rb +52 -0
  65. data/lib/cmdx/log_formatters/json.rb +21 -22
  66. data/lib/cmdx/log_formatters/key_value.rb +20 -22
  67. data/lib/cmdx/log_formatters/line.rb +15 -22
  68. data/lib/cmdx/log_formatters/logstash.rb +22 -23
  69. data/lib/cmdx/log_formatters/raw.rb +16 -22
  70. data/lib/cmdx/middleware_registry.rb +70 -74
  71. data/lib/cmdx/middlewares/correlate.rb +90 -54
  72. data/lib/cmdx/middlewares/runtime.rb +58 -0
  73. data/lib/cmdx/middlewares/timeout.rb +48 -68
  74. data/lib/cmdx/railtie.rb +12 -45
  75. data/lib/cmdx/result.rb +229 -314
  76. data/lib/cmdx/task.rb +194 -366
  77. data/lib/cmdx/utils/call.rb +49 -0
  78. data/lib/cmdx/utils/condition.rb +71 -0
  79. data/lib/cmdx/utils/format.rb +61 -0
  80. data/lib/cmdx/validator_registry.rb +63 -72
  81. data/lib/cmdx/validators/exclusion.rb +38 -67
  82. data/lib/cmdx/validators/format.rb +48 -49
  83. data/lib/cmdx/validators/inclusion.rb +43 -74
  84. data/lib/cmdx/validators/length.rb +101 -162
  85. data/lib/cmdx/validators/numeric.rb +95 -170
  86. data/lib/cmdx/validators/presence.rb +37 -50
  87. data/lib/cmdx/version.rb +1 -1
  88. data/lib/cmdx/worker.rb +178 -0
  89. data/lib/cmdx/workflow.rb +85 -81
  90. data/lib/cmdx.rb +19 -13
  91. data/lib/generators/cmdx/install_generator.rb +14 -13
  92. data/lib/generators/cmdx/task_generator.rb +25 -50
  93. data/lib/generators/cmdx/templates/install.rb +11 -46
  94. data/lib/generators/cmdx/templates/task.rb.tt +3 -2
  95. data/lib/locales/en.yml +18 -4
  96. data/src/cmdx-logo.png +0 -0
  97. metadata +32 -116
  98. data/docs/ai_prompts.md +0 -393
  99. data/docs/basics/call.md +0 -317
  100. data/docs/configuration.md +0 -344
  101. data/docs/parameters/coercions.md +0 -396
  102. data/docs/parameters/defaults.md +0 -335
  103. data/docs/parameters/definitions.md +0 -446
  104. data/docs/parameters/namespacing.md +0 -378
  105. data/docs/parameters/validations.md +0 -405
  106. data/docs/testing.md +0 -553
  107. data/lib/cmdx/callback.rb +0 -53
  108. data/lib/cmdx/chain_inspector.rb +0 -56
  109. data/lib/cmdx/chain_serializer.rb +0 -63
  110. data/lib/cmdx/coercion.rb +0 -57
  111. data/lib/cmdx/coercions/virtual.rb +0 -29
  112. data/lib/cmdx/core_ext/hash.rb +0 -83
  113. data/lib/cmdx/core_ext/module.rb +0 -98
  114. data/lib/cmdx/core_ext/object.rb +0 -125
  115. data/lib/cmdx/correlator.rb +0 -122
  116. data/lib/cmdx/error.rb +0 -67
  117. data/lib/cmdx/fault.rb +0 -140
  118. data/lib/cmdx/immutator.rb +0 -52
  119. data/lib/cmdx/lazy_struct.rb +0 -246
  120. data/lib/cmdx/log_formatters/pretty_json.rb +0 -40
  121. data/lib/cmdx/log_formatters/pretty_key_value.rb +0 -38
  122. data/lib/cmdx/log_formatters/pretty_line.rb +0 -41
  123. data/lib/cmdx/logger.rb +0 -49
  124. data/lib/cmdx/logger_ansi.rb +0 -68
  125. data/lib/cmdx/logger_serializer.rb +0 -116
  126. data/lib/cmdx/middleware.rb +0 -70
  127. data/lib/cmdx/parameter.rb +0 -312
  128. data/lib/cmdx/parameter_evaluator.rb +0 -231
  129. data/lib/cmdx/parameter_inspector.rb +0 -66
  130. data/lib/cmdx/parameter_registry.rb +0 -106
  131. data/lib/cmdx/parameter_serializer.rb +0 -59
  132. data/lib/cmdx/result_ansi.rb +0 -71
  133. data/lib/cmdx/result_inspector.rb +0 -71
  134. data/lib/cmdx/result_logger.rb +0 -59
  135. data/lib/cmdx/result_serializer.rb +0 -104
  136. data/lib/cmdx/rspec/matchers.rb +0 -28
  137. data/lib/cmdx/rspec/result_matchers/be_executed.rb +0 -42
  138. data/lib/cmdx/rspec/result_matchers/be_failed_task.rb +0 -94
  139. data/lib/cmdx/rspec/result_matchers/be_skipped_task.rb +0 -94
  140. data/lib/cmdx/rspec/result_matchers/be_state_matchers.rb +0 -59
  141. data/lib/cmdx/rspec/result_matchers/be_status_matchers.rb +0 -57
  142. data/lib/cmdx/rspec/result_matchers/be_successful_task.rb +0 -87
  143. data/lib/cmdx/rspec/result_matchers/have_bad_outcome.rb +0 -51
  144. data/lib/cmdx/rspec/result_matchers/have_caused_failure.rb +0 -58
  145. data/lib/cmdx/rspec/result_matchers/have_chain_index.rb +0 -59
  146. data/lib/cmdx/rspec/result_matchers/have_context.rb +0 -86
  147. data/lib/cmdx/rspec/result_matchers/have_empty_metadata.rb +0 -54
  148. data/lib/cmdx/rspec/result_matchers/have_good_outcome.rb +0 -52
  149. data/lib/cmdx/rspec/result_matchers/have_metadata.rb +0 -114
  150. data/lib/cmdx/rspec/result_matchers/have_preserved_context.rb +0 -66
  151. data/lib/cmdx/rspec/result_matchers/have_received_thrown_failure.rb +0 -64
  152. data/lib/cmdx/rspec/result_matchers/have_runtime.rb +0 -78
  153. data/lib/cmdx/rspec/result_matchers/have_thrown_failure.rb +0 -76
  154. data/lib/cmdx/rspec/task_matchers/be_well_formed_task.rb +0 -62
  155. data/lib/cmdx/rspec/task_matchers/have_callback.rb +0 -85
  156. data/lib/cmdx/rspec/task_matchers/have_cmd_setting.rb +0 -68
  157. data/lib/cmdx/rspec/task_matchers/have_executed_callbacks.rb +0 -92
  158. data/lib/cmdx/rspec/task_matchers/have_middleware.rb +0 -46
  159. data/lib/cmdx/rspec/task_matchers/have_parameter.rb +0 -181
  160. data/lib/cmdx/task_deprecator.rb +0 -58
  161. data/lib/cmdx/task_processor.rb +0 -246
  162. data/lib/cmdx/task_serializer.rb +0 -57
  163. data/lib/cmdx/utils/ansi_color.rb +0 -73
  164. data/lib/cmdx/utils/log_timestamp.rb +0 -36
  165. data/lib/cmdx/utils/monotonic_runtime.rb +0 -34
  166. data/lib/cmdx/utils/name_affix.rb +0 -52
  167. data/lib/cmdx/validator.rb +0 -57
  168. data/lib/generators/cmdx/templates/workflow.rb.tt +0 -7
  169. data/lib/generators/cmdx/workflow_generator.rb +0 -84
  170. data/lib/locales/ar.yml +0 -35
  171. data/lib/locales/cs.yml +0 -35
  172. data/lib/locales/da.yml +0 -35
  173. data/lib/locales/de.yml +0 -35
  174. data/lib/locales/el.yml +0 -35
  175. data/lib/locales/es.yml +0 -35
  176. data/lib/locales/fi.yml +0 -35
  177. data/lib/locales/fr.yml +0 -35
  178. data/lib/locales/he.yml +0 -35
  179. data/lib/locales/hi.yml +0 -35
  180. data/lib/locales/it.yml +0 -35
  181. data/lib/locales/ja.yml +0 -35
  182. data/lib/locales/ko.yml +0 -35
  183. data/lib/locales/nl.yml +0 -35
  184. data/lib/locales/no.yml +0 -35
  185. data/lib/locales/pl.yml +0 -35
  186. data/lib/locales/pt.yml +0 -35
  187. data/lib/locales/ru.yml +0 -35
  188. data/lib/locales/sv.yml +0 -35
  189. data/lib/locales/th.yml +0 -35
  190. data/lib/locales/tr.yml +0 -35
  191. data/lib/locales/vi.yml +0 -35
  192. data/lib/locales/zh.yml +0 -35
data/lib/locales/th.yml DELETED
@@ -1,35 +0,0 @@
1
- th:
2
- cmdx:
3
- coercions:
4
- into_a: "ไม่สามารถแปลงเป็น %{type} ได้"
5
- into_an: "ไม่สามารถแปลงเป็น %{type} ได้"
6
- into_any: "ไม่สามารถแปลงเป็นหนึ่งใน: %{values}"
7
- unknown: "ประเภทการแปลง %{type} ที่ไม่รู้จัก"
8
- faults:
9
- unspecified: "ไม่ได้ระบุเหตุผล"
10
- parameters:
11
- required: "เป็นพารามิเตอร์ที่จำเป็น"
12
- undefined: "ส่งต่อไปยังเมธอดที่ไม่ได้กำหนด %{source}"
13
- validators:
14
- exclusion:
15
- of: "ต้องไม่เป็นหนึ่งใน: %{values}"
16
- within: "ต้องไม่อยู่ระหว่าง %{min} และ %{max}"
17
- format: "มีรูปแบบที่ไม่ถูกต้อง"
18
- inclusion:
19
- of: "ต้องเป็นหนึ่งใน: %{values}"
20
- within: "ต้องอยู่ระหว่าง %{min} และ %{max}"
21
- length:
22
- is: "ความยาวต้องเป็น %{is}"
23
- is_not: "ความยาวต้องไม่เป็น %{is_not}"
24
- min: "ความยาวต้องมีอย่างน้อย %{min}"
25
- max: "ความยาวต้องมีมากที่สุด %{max}"
26
- not_within: "ความยาวต้องไม่อยู่ระหว่าง %{min} และ %{max}"
27
- within: "ความยาวต้องอยู่ระหว่าง %{min} และ %{max}"
28
- numeric:
29
- is: "ต้องเป็น %{is}"
30
- is_not: "ต้องไม่เป็น %{is_not}"
31
- min: "ต้องมีอย่างน้อย %{min}"
32
- max: "ต้องมีมากที่สุด %{max}"
33
- not_within: "ต้องไม่อยู่ระหว่าง %{min} และ %{max}"
34
- within: "ต้องอยู่ระหว่าง %{min} และ %{max}"
35
- presence: "ไม่สามารถเป็นค่าว่างได้"
data/lib/locales/tr.yml DELETED
@@ -1,35 +0,0 @@
1
- tr:
2
- cmdx:
3
- coercions:
4
- into_a: "%{type} türüne dönüştürülemedi"
5
- into_an: "%{type} türüne dönüştürülemedi"
6
- into_any: "şunlardan birine dönüştürülemedi: %{values}"
7
- unknown: "bilinmeyen %{type} dönüşüm türü"
8
- faults:
9
- unspecified: "sebep belirtilmedi"
10
- parameters:
11
- required: "gerekli bir parametredir"
12
- undefined: "tanımsız metoda %{source} yetki verir"
13
- validators:
14
- exclusion:
15
- of: "şunlardan biri olmamalı: %{values}"
16
- within: "%{min} ve %{max} arasında olmamalı"
17
- format: "geçersiz biçime sahip"
18
- inclusion:
19
- of: "şunlardan biri olmalı: %{values}"
20
- within: "%{min} ve %{max} arasında olmalı"
21
- length:
22
- is: "uzunluk %{is} olmalı"
23
- is_not: "uzunluk %{is_not} olmamalı"
24
- min: "uzunluk en az %{min} olmalı"
25
- max: "uzunluk en fazla %{max} olmalı"
26
- not_within: "uzunluk %{min} ve %{max} arasında olmamalı"
27
- within: "uzunluk %{min} ve %{max} arasında olmalı"
28
- numeric:
29
- is: "%{is} olmalı"
30
- is_not: "%{is_not} olmamalı"
31
- min: "en az %{min} olmalı"
32
- max: "en fazla %{max} olmalı"
33
- not_within: "%{min} ve %{max} arasında olmamalı"
34
- within: "%{min} ve %{max} arasında olmalı"
35
- presence: "boş olamaz"
data/lib/locales/vi.yml DELETED
@@ -1,35 +0,0 @@
1
- vi:
2
- cmdx:
3
- coercions:
4
- into_a: "không thể chuyển đổi thành %{type}"
5
- into_an: "không thể chuyển đổi thành %{type}"
6
- into_any: "không thể chuyển đổi thành một trong: %{values}"
7
- unknown: "loại chuyển đổi %{type} không rõ"
8
- faults:
9
- unspecified: "không có lý do được đưa ra"
10
- parameters:
11
- required: "là một tham số bắt buộc"
12
- undefined: "ủy quyền cho phương thức không xác định %{source}"
13
- validators:
14
- exclusion:
15
- of: "không được là một trong: %{values}"
16
- within: "không được nằm giữa %{min} và %{max}"
17
- format: "có định dạng không hợp lệ"
18
- inclusion:
19
- of: "phải là một trong: %{values}"
20
- within: "phải nằm giữa %{min} và %{max}"
21
- length:
22
- is: "độ dài phải là %{is}"
23
- is_not: "độ dài không được là %{is_not}"
24
- min: "độ dài phải ít nhất %{min}"
25
- max: "độ dài tối đa %{max}"
26
- not_within: "độ dài không được nằm giữa %{min} và %{max}"
27
- within: "độ dài phải nằm giữa %{min} và %{max}"
28
- numeric:
29
- is: "phải là %{is}"
30
- is_not: "không được là %{is_not}"
31
- min: "phải ít nhất %{min}"
32
- max: "tối đa %{max}"
33
- not_within: "không được nằm giữa %{min} và %{max}"
34
- within: "phải nằm giữa %{min} và %{max}"
35
- presence: "không thể để trống"
data/lib/locales/zh.yml DELETED
@@ -1,35 +0,0 @@
1
- zh:
2
- cmdx:
3
- coercions:
4
- into_a: "无法转换为%{type}"
5
- into_an: "无法转换为%{type}"
6
- into_any: "无法转换为以下任一类型: %{values}"
7
- unknown: "未知的%{type}转换类型"
8
- faults:
9
- unspecified: "未提供原因"
10
- parameters:
11
- required: "是必需参数"
12
- undefined: "委托给未定义的方法%{source}"
13
- validators:
14
- exclusion:
15
- of: "不能是以下任一值: %{values}"
16
- within: "不能在%{min}和%{max}之间"
17
- format: "格式无效"
18
- inclusion:
19
- of: "必须是以下任一值: %{values}"
20
- within: "必须在%{min}和%{max}之间"
21
- length:
22
- is: "长度必须是%{is}"
23
- is_not: "长度不能是%{is_not}"
24
- min: "长度至少为%{min}"
25
- max: "长度最多为%{max}"
26
- not_within: "长度不能在%{min}和%{max}之间"
27
- within: "长度必须在%{min}和%{max}之间"
28
- numeric:
29
- is: "必须是%{is}"
30
- is_not: "不能是%{is_not}"
31
- min: "至少为%{min}"
32
- max: "最多为%{max}"
33
- not_within: "不能在%{min}和%{max}之间"
34
- within: "必须在%{min}和%{max}之间"
35
- presence: "不能为空"