cmdx 1.1.1 → 1.5.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 (193) 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 +56 -1
  8. data/.irbrc +6 -0
  9. data/.rubocop.yml +29 -18
  10. data/.ruby-version +1 -1
  11. data/CHANGELOG.md +6 -128
  12. data/LLM.md +3317 -0
  13. data/README.md +68 -44
  14. data/docs/attributes/coercions.md +162 -0
  15. data/docs/attributes/defaults.md +90 -0
  16. data/docs/attributes/definitions.md +281 -0
  17. data/docs/attributes/naming.md +78 -0
  18. data/docs/attributes/validations.md +309 -0
  19. data/docs/basics/chain.md +56 -249
  20. data/docs/basics/context.md +56 -289
  21. data/docs/basics/execution.md +114 -0
  22. data/docs/basics/setup.md +37 -334
  23. data/docs/callbacks.md +89 -467
  24. data/docs/deprecation.md +91 -174
  25. data/docs/getting_started.md +212 -202
  26. data/docs/internationalization.md +11 -647
  27. data/docs/interruptions/exceptions.md +23 -198
  28. data/docs/interruptions/faults.md +71 -151
  29. data/docs/interruptions/halt.md +109 -186
  30. data/docs/logging.md +44 -256
  31. data/docs/middlewares.md +113 -426
  32. data/docs/outcomes/result.md +81 -228
  33. data/docs/outcomes/states.md +33 -221
  34. data/docs/outcomes/statuses.md +21 -311
  35. data/docs/tips_and_tricks.md +120 -70
  36. data/docs/workflows.md +99 -283
  37. data/lib/cmdx/.DS_Store +0 -0
  38. data/lib/cmdx/attribute.rb +229 -0
  39. data/lib/cmdx/attribute_registry.rb +94 -0
  40. data/lib/cmdx/attribute_value.rb +193 -0
  41. data/lib/cmdx/callback_registry.rb +69 -77
  42. data/lib/cmdx/chain.rb +56 -73
  43. data/lib/cmdx/coercion_registry.rb +52 -68
  44. data/lib/cmdx/coercions/array.rb +19 -18
  45. data/lib/cmdx/coercions/big_decimal.rb +20 -24
  46. data/lib/cmdx/coercions/boolean.rb +26 -25
  47. data/lib/cmdx/coercions/complex.rb +21 -22
  48. data/lib/cmdx/coercions/date.rb +25 -23
  49. data/lib/cmdx/coercions/date_time.rb +24 -25
  50. data/lib/cmdx/coercions/float.rb +25 -22
  51. data/lib/cmdx/coercions/hash.rb +31 -32
  52. data/lib/cmdx/coercions/integer.rb +30 -24
  53. data/lib/cmdx/coercions/rational.rb +29 -24
  54. data/lib/cmdx/coercions/string.rb +19 -22
  55. data/lib/cmdx/coercions/symbol.rb +37 -0
  56. data/lib/cmdx/coercions/time.rb +26 -25
  57. data/lib/cmdx/configuration.rb +49 -108
  58. data/lib/cmdx/context.rb +222 -44
  59. data/lib/cmdx/deprecator.rb +61 -0
  60. data/lib/cmdx/errors.rb +42 -252
  61. data/lib/cmdx/exceptions.rb +39 -0
  62. data/lib/cmdx/faults.rb +78 -39
  63. data/lib/cmdx/freezer.rb +51 -0
  64. data/lib/cmdx/identifier.rb +30 -0
  65. data/lib/cmdx/locale.rb +52 -0
  66. data/lib/cmdx/log_formatters/json.rb +21 -22
  67. data/lib/cmdx/log_formatters/key_value.rb +20 -22
  68. data/lib/cmdx/log_formatters/line.rb +15 -22
  69. data/lib/cmdx/log_formatters/logstash.rb +22 -23
  70. data/lib/cmdx/log_formatters/raw.rb +16 -22
  71. data/lib/cmdx/middleware_registry.rb +70 -74
  72. data/lib/cmdx/middlewares/correlate.rb +90 -54
  73. data/lib/cmdx/middlewares/runtime.rb +58 -0
  74. data/lib/cmdx/middlewares/timeout.rb +48 -68
  75. data/lib/cmdx/railtie.rb +12 -45
  76. data/lib/cmdx/result.rb +229 -314
  77. data/lib/cmdx/task.rb +194 -366
  78. data/lib/cmdx/utils/call.rb +49 -0
  79. data/lib/cmdx/utils/condition.rb +71 -0
  80. data/lib/cmdx/utils/format.rb +61 -0
  81. data/lib/cmdx/validator_registry.rb +63 -72
  82. data/lib/cmdx/validators/exclusion.rb +38 -67
  83. data/lib/cmdx/validators/format.rb +48 -49
  84. data/lib/cmdx/validators/inclusion.rb +43 -74
  85. data/lib/cmdx/validators/length.rb +91 -154
  86. data/lib/cmdx/validators/numeric.rb +87 -162
  87. data/lib/cmdx/validators/presence.rb +37 -50
  88. data/lib/cmdx/version.rb +1 -1
  89. data/lib/cmdx/worker.rb +178 -0
  90. data/lib/cmdx/workflow.rb +85 -81
  91. data/lib/cmdx.rb +19 -13
  92. data/lib/generators/cmdx/install_generator.rb +14 -13
  93. data/lib/generators/cmdx/task_generator.rb +25 -50
  94. data/lib/generators/cmdx/templates/install.rb +11 -46
  95. data/lib/generators/cmdx/templates/task.rb.tt +3 -2
  96. data/lib/locales/en.yml +18 -4
  97. data/src/cmdx-logo.png +0 -0
  98. metadata +32 -116
  99. data/docs/ai_prompts.md +0 -393
  100. data/docs/basics/call.md +0 -317
  101. data/docs/configuration.md +0 -344
  102. data/docs/parameters/coercions.md +0 -396
  103. data/docs/parameters/defaults.md +0 -335
  104. data/docs/parameters/definitions.md +0 -446
  105. data/docs/parameters/namespacing.md +0 -378
  106. data/docs/parameters/validations.md +0 -405
  107. data/docs/testing.md +0 -553
  108. data/lib/cmdx/callback.rb +0 -53
  109. data/lib/cmdx/chain_inspector.rb +0 -56
  110. data/lib/cmdx/chain_serializer.rb +0 -63
  111. data/lib/cmdx/coercion.rb +0 -57
  112. data/lib/cmdx/coercions/virtual.rb +0 -29
  113. data/lib/cmdx/core_ext/hash.rb +0 -83
  114. data/lib/cmdx/core_ext/module.rb +0 -98
  115. data/lib/cmdx/core_ext/object.rb +0 -125
  116. data/lib/cmdx/correlator.rb +0 -122
  117. data/lib/cmdx/error.rb +0 -60
  118. data/lib/cmdx/fault.rb +0 -140
  119. data/lib/cmdx/immutator.rb +0 -52
  120. data/lib/cmdx/lazy_struct.rb +0 -246
  121. data/lib/cmdx/log_formatters/pretty_json.rb +0 -40
  122. data/lib/cmdx/log_formatters/pretty_key_value.rb +0 -38
  123. data/lib/cmdx/log_formatters/pretty_line.rb +0 -41
  124. data/lib/cmdx/logger.rb +0 -49
  125. data/lib/cmdx/logger_ansi.rb +0 -68
  126. data/lib/cmdx/logger_serializer.rb +0 -116
  127. data/lib/cmdx/middleware.rb +0 -70
  128. data/lib/cmdx/parameter.rb +0 -312
  129. data/lib/cmdx/parameter_evaluator.rb +0 -231
  130. data/lib/cmdx/parameter_inspector.rb +0 -66
  131. data/lib/cmdx/parameter_registry.rb +0 -106
  132. data/lib/cmdx/parameter_serializer.rb +0 -59
  133. data/lib/cmdx/result_ansi.rb +0 -71
  134. data/lib/cmdx/result_inspector.rb +0 -71
  135. data/lib/cmdx/result_logger.rb +0 -59
  136. data/lib/cmdx/result_serializer.rb +0 -104
  137. data/lib/cmdx/rspec/matchers.rb +0 -28
  138. data/lib/cmdx/rspec/result_matchers/be_executed.rb +0 -42
  139. data/lib/cmdx/rspec/result_matchers/be_failed_task.rb +0 -94
  140. data/lib/cmdx/rspec/result_matchers/be_skipped_task.rb +0 -94
  141. data/lib/cmdx/rspec/result_matchers/be_state_matchers.rb +0 -59
  142. data/lib/cmdx/rspec/result_matchers/be_status_matchers.rb +0 -57
  143. data/lib/cmdx/rspec/result_matchers/be_successful_task.rb +0 -87
  144. data/lib/cmdx/rspec/result_matchers/have_bad_outcome.rb +0 -51
  145. data/lib/cmdx/rspec/result_matchers/have_caused_failure.rb +0 -58
  146. data/lib/cmdx/rspec/result_matchers/have_chain_index.rb +0 -59
  147. data/lib/cmdx/rspec/result_matchers/have_context.rb +0 -86
  148. data/lib/cmdx/rspec/result_matchers/have_empty_metadata.rb +0 -54
  149. data/lib/cmdx/rspec/result_matchers/have_good_outcome.rb +0 -52
  150. data/lib/cmdx/rspec/result_matchers/have_metadata.rb +0 -114
  151. data/lib/cmdx/rspec/result_matchers/have_preserved_context.rb +0 -66
  152. data/lib/cmdx/rspec/result_matchers/have_received_thrown_failure.rb +0 -64
  153. data/lib/cmdx/rspec/result_matchers/have_runtime.rb +0 -78
  154. data/lib/cmdx/rspec/result_matchers/have_thrown_failure.rb +0 -76
  155. data/lib/cmdx/rspec/task_matchers/be_well_formed_task.rb +0 -62
  156. data/lib/cmdx/rspec/task_matchers/have_callback.rb +0 -85
  157. data/lib/cmdx/rspec/task_matchers/have_cmd_setting.rb +0 -68
  158. data/lib/cmdx/rspec/task_matchers/have_executed_callbacks.rb +0 -92
  159. data/lib/cmdx/rspec/task_matchers/have_middleware.rb +0 -46
  160. data/lib/cmdx/rspec/task_matchers/have_parameter.rb +0 -181
  161. data/lib/cmdx/task_deprecator.rb +0 -52
  162. data/lib/cmdx/task_processor.rb +0 -246
  163. data/lib/cmdx/task_serializer.rb +0 -57
  164. data/lib/cmdx/utils/ansi_color.rb +0 -73
  165. data/lib/cmdx/utils/log_timestamp.rb +0 -36
  166. data/lib/cmdx/utils/monotonic_runtime.rb +0 -34
  167. data/lib/cmdx/utils/name_affix.rb +0 -52
  168. data/lib/cmdx/validator.rb +0 -57
  169. data/lib/generators/cmdx/templates/workflow.rb.tt +0 -7
  170. data/lib/generators/cmdx/workflow_generator.rb +0 -84
  171. data/lib/locales/ar.yml +0 -35
  172. data/lib/locales/cs.yml +0 -35
  173. data/lib/locales/da.yml +0 -35
  174. data/lib/locales/de.yml +0 -35
  175. data/lib/locales/el.yml +0 -35
  176. data/lib/locales/es.yml +0 -35
  177. data/lib/locales/fi.yml +0 -35
  178. data/lib/locales/fr.yml +0 -35
  179. data/lib/locales/he.yml +0 -35
  180. data/lib/locales/hi.yml +0 -35
  181. data/lib/locales/it.yml +0 -35
  182. data/lib/locales/ja.yml +0 -35
  183. data/lib/locales/ko.yml +0 -35
  184. data/lib/locales/nl.yml +0 -35
  185. data/lib/locales/no.yml +0 -35
  186. data/lib/locales/pl.yml +0 -35
  187. data/lib/locales/pt.yml +0 -35
  188. data/lib/locales/ru.yml +0 -35
  189. data/lib/locales/sv.yml +0 -35
  190. data/lib/locales/th.yml +0 -35
  191. data/lib/locales/tr.yml +0 -35
  192. data/lib/locales/vi.yml +0 -35
  193. 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: "不能为空"