cmdx 1.7.5 → 1.9.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.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/.cursor/prompts/docs.md +3 -3
- data/.cursor/prompts/llms.md +1 -3
- data/.cursor/prompts/rspec.md +1 -1
- data/.irbrc +14 -2
- data/CHANGELOG.md +62 -29
- data/LLM.md +203 -78
- data/README.md +23 -85
- data/docs/.DS_Store +0 -0
- data/docs/assets/favicon.ico +0 -0
- data/docs/assets/favicon.svg +1 -0
- data/docs/attributes/coercions.md +19 -29
- data/docs/attributes/defaults.md +3 -16
- data/docs/attributes/definitions.md +29 -39
- data/docs/attributes/naming.md +3 -13
- data/docs/attributes/transformations.md +63 -0
- data/docs/attributes/validations.md +23 -40
- data/docs/basics/chain.md +14 -23
- data/docs/basics/context.md +13 -22
- data/docs/basics/execution.md +8 -26
- data/docs/basics/setup.md +8 -19
- data/docs/callbacks.md +19 -32
- data/docs/deprecation.md +8 -25
- data/docs/getting_started.md +101 -77
- data/docs/index.md +120 -0
- data/docs/internationalization.md +6 -18
- data/docs/interruptions/exceptions.md +10 -16
- data/docs/interruptions/faults.md +8 -25
- data/docs/interruptions/halt.md +31 -25
- data/docs/logging.md +7 -17
- data/docs/middlewares.md +13 -29
- data/docs/outcomes/result.md +21 -38
- data/docs/outcomes/states.md +8 -22
- data/docs/outcomes/statuses.md +10 -21
- data/docs/stylesheets/extra.css +42 -0
- data/docs/tips_and_tricks.md +7 -46
- data/docs/workflows.md +23 -38
- data/examples/active_record_query_tagging.md +46 -0
- data/examples/paper_trail_whatdunnit.md +39 -0
- data/lib/cmdx/attribute.rb +9 -2
- data/lib/cmdx/attribute_value.rb +31 -10
- data/lib/cmdx/callback_registry.rb +12 -2
- data/lib/cmdx/coercions/hash.rb +6 -1
- data/lib/cmdx/configuration.rb +10 -2
- data/lib/cmdx/deprecator.rb +3 -3
- data/lib/cmdx/errors.rb +1 -1
- data/lib/cmdx/executor.rb +97 -9
- data/lib/cmdx/log_formatters/logstash.rb +4 -4
- data/lib/cmdx/pipeline.rb +4 -4
- data/lib/cmdx/railtie.rb +9 -0
- data/lib/cmdx/result.rb +10 -1
- data/lib/cmdx/task.rb +12 -7
- data/lib/cmdx/version.rb +1 -1
- data/lib/cmdx.rb +1 -0
- data/lib/generators/cmdx/templates/install.rb +9 -0
- data/lib/locales/af.yml +2 -2
- data/lib/locales/ar.yml +2 -2
- data/lib/locales/az.yml +2 -2
- data/lib/locales/be.yml +2 -2
- data/lib/locales/bg.yml +2 -2
- data/lib/locales/bn.yml +2 -2
- data/lib/locales/bs.yml +2 -2
- data/lib/locales/ca.yml +2 -2
- data/lib/locales/cnr.yml +2 -2
- data/lib/locales/cs.yml +2 -2
- data/lib/locales/cy.yml +2 -2
- data/lib/locales/da.yml +2 -2
- data/lib/locales/de.yml +2 -2
- data/lib/locales/dz.yml +2 -2
- data/lib/locales/el.yml +2 -2
- data/lib/locales/en.yml +2 -2
- data/lib/locales/eo.yml +2 -2
- data/lib/locales/es.yml +2 -2
- data/lib/locales/et.yml +2 -2
- data/lib/locales/eu.yml +2 -2
- data/lib/locales/fa.yml +2 -2
- data/lib/locales/fi.yml +2 -2
- data/lib/locales/fr.yml +2 -2
- data/lib/locales/fy.yml +2 -2
- data/lib/locales/gd.yml +2 -2
- data/lib/locales/gl.yml +2 -2
- data/lib/locales/he.yml +2 -2
- data/lib/locales/hi.yml +2 -2
- data/lib/locales/hr.yml +2 -2
- data/lib/locales/hu.yml +2 -2
- data/lib/locales/hy.yml +2 -2
- data/lib/locales/id.yml +2 -2
- data/lib/locales/is.yml +2 -2
- data/lib/locales/it.yml +2 -2
- data/lib/locales/ja.yml +2 -2
- data/lib/locales/ka.yml +2 -2
- data/lib/locales/kk.yml +2 -2
- data/lib/locales/km.yml +2 -2
- data/lib/locales/kn.yml +2 -2
- data/lib/locales/ko.yml +2 -2
- data/lib/locales/lb.yml +2 -2
- data/lib/locales/lo.yml +2 -2
- data/lib/locales/lt.yml +2 -2
- data/lib/locales/lv.yml +2 -2
- data/lib/locales/mg.yml +2 -2
- data/lib/locales/mk.yml +2 -2
- data/lib/locales/ml.yml +2 -2
- data/lib/locales/mn.yml +2 -2
- data/lib/locales/mr-IN.yml +2 -2
- data/lib/locales/ms.yml +2 -2
- data/lib/locales/nb.yml +2 -2
- data/lib/locales/ne.yml +2 -2
- data/lib/locales/nl.yml +2 -2
- data/lib/locales/nn.yml +2 -2
- data/lib/locales/oc.yml +2 -2
- data/lib/locales/or.yml +2 -2
- data/lib/locales/pa.yml +2 -2
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt.yml +2 -2
- data/lib/locales/rm.yml +2 -2
- data/lib/locales/ro.yml +2 -2
- data/lib/locales/ru.yml +2 -2
- data/lib/locales/sc.yml +2 -2
- data/lib/locales/sk.yml +2 -2
- data/lib/locales/sl.yml +2 -2
- data/lib/locales/sq.yml +2 -2
- data/lib/locales/sr.yml +2 -2
- data/lib/locales/st.yml +2 -2
- data/lib/locales/sv.yml +2 -2
- data/lib/locales/sw.yml +2 -2
- data/lib/locales/ta.yml +2 -2
- data/lib/locales/te.yml +2 -2
- data/lib/locales/th.yml +2 -2
- data/lib/locales/tl.yml +2 -2
- data/lib/locales/tr.yml +2 -2
- data/lib/locales/tt.yml +2 -2
- data/lib/locales/ug.yml +2 -2
- data/lib/locales/uk.yml +2 -2
- data/lib/locales/ur.yml +2 -2
- data/lib/locales/uz.yml +2 -2
- data/lib/locales/vi.yml +2 -2
- data/lib/locales/wo.yml +2 -2
- data/lib/locales/zh-CN.yml +2 -2
- data/lib/locales/zh-HK.yml +2 -2
- data/lib/locales/zh-TW.yml +2 -2
- data/lib/locales/zh-YUE.yml +2 -2
- data/mkdocs.yml +122 -0
- data/src/cmdx-dark-logo.png +0 -0
- data/src/cmdx-favicon.svg +1 -0
- data/src/cmdx-light-logo.png +0 -0
- data/src/cmdx-logo.svg +1 -0
- metadata +15 -4
- data/lib/cmdx/freezer.rb +0 -51
- data/src/cmdx-logo.png +0 -0
    
        data/lib/locales/pl.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ pl: | |
| 9 9 | 
             
                  into_any: "nie można przekonwertować na jeden z: %{types}"
         | 
| 10 10 | 
             
                  unknown: "nieznany typ konwersji %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Nieprawidłowe | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Nieprawidłowe"
         | 
| 13 | 
            +
                  unspecified: "Nieokreślone"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "tablica"
         | 
| 16 16 | 
             
                  big_decimal: "duża liczba dziesiętna"
         | 
    
        data/lib/locales/pt.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ pt: | |
| 9 9 | 
             
                  into_any: "não foi possível converter em um de: %{types}"
         | 
| 10 10 | 
             
                  unknown: "tipo de conversão %{type} desconhecido"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Inválidas"
         | 
| 13 | 
            +
                  unspecified: "Não especificada"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "decimal grande"
         | 
    
        data/lib/locales/rm.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ rm: | |
| 9 9 | 
             
                  into_any: "na pudeva betg vegnir convertì en in da: %{types}"
         | 
| 10 10 | 
             
                  unknown: "tip da conversiun %{type} nunenconuschent"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Nunvalidas"
         | 
| 13 | 
            +
                  unspecified: "Betg specificà"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "decimal grond"
         | 
    
        data/lib/locales/ro.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ ro: | |
| 9 9 | 
             
                  into_any: "nu a putut fi convertit în unul din: %{types}"
         | 
| 10 10 | 
             
                  unknown: "tip de conversie %{type} necunoscut"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Invalide"
         | 
| 13 | 
            +
                  unspecified: "Nespecificat"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "decimal mare"
         | 
    
        data/lib/locales/ru.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ ru: | |
| 9 9 | 
             
                  into_any: "не удалось преобразовать в один из: %{types}"
         | 
| 10 10 | 
             
                  unknown: "неизвестный тип преобразования %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Неверные | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Неверные"
         | 
| 13 | 
            +
                  unspecified: "Не указано"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "массив"
         | 
| 16 16 | 
             
                  big_decimal: "большое десятичное число"
         | 
    
        data/lib/locales/sc.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sc: | |
| 9 9 | 
             
                  into_any: "no s'est podidu cunvertire in unu de: %{types}"
         | 
| 10 10 | 
             
                  unknown: "tipu de cunversione %{type} disconnotu"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Non vàlidos"
         | 
| 13 | 
            +
                  unspecified: "Non specificadu"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "decimale mannu"
         | 
    
        data/lib/locales/sk.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sk: | |
| 9 9 | 
             
                  into_any: "nepodarilo sa previesť na jeden z: %{types}"
         | 
| 10 10 | 
             
                  unknown: "neznámy typ konverzie %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Neplatné | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Neplatné"
         | 
| 13 | 
            +
                  unspecified: "Nešpecifikované"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "pole"
         | 
| 16 16 | 
             
                  big_decimal: "veľké desatinné číslo"
         | 
    
        data/lib/locales/sl.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sl: | |
| 9 9 | 
             
                  into_any: "ni bilo mogoče pretvoriti v enega od: %{types}"
         | 
| 10 10 | 
             
                  unknown: "neznan tip pretvorbe %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Neveljavni | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Neveljavni"
         | 
| 13 | 
            +
                  unspecified: "Nedoločeno"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "matrika"
         | 
| 16 16 | 
             
                  big_decimal: "veliko decimalno število"
         | 
    
        data/lib/locales/sq.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sq: | |
| 9 9 | 
             
                  into_any: "nuk mund të konvertohet në një nga: %{types}"
         | 
| 10 10 | 
             
                  unknown: "tip i panjohur konvertimi %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Të pavlefshme"
         | 
| 13 | 
            +
                  unspecified: "E papërcaktuar"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "decimal i madh"
         | 
    
        data/lib/locales/sr.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sr: | |
| 9 9 | 
             
                  into_any: "није могао да се конвертује у један од: %{types}"
         | 
| 10 10 | 
             
                  unknown: "непознат тип конверзије %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Неисправни | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Неисправни"
         | 
| 13 | 
            +
                  unspecified: "Није наведен"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "низ"
         | 
| 16 16 | 
             
                  big_decimal: "велики децимални број"
         | 
    
        data/lib/locales/st.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ st: | |
| 9 9 | 
             
                  into_any: "ha e ka fetolelwa ho e mong oa: %{types}"
         | 
| 10 10 | 
             
                  unknown: "mofuta o sa tsejoang oa phetoho %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: "Ha  | 
| 12 | 
            +
                  invalid: "Tse sa sebetseng"
         | 
| 13 | 
            +
                  unspecified: "Ha e hlalosoe"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "decimal e kgolo"
         | 
    
        data/lib/locales/sv.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sv: | |
| 9 9 | 
             
                  into_any: "kunde inte konverteras till en av: %{types}"
         | 
| 10 10 | 
             
                  unknown: "okänd %{type} konverteringstyp"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Ogiltiga | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Ogiltiga"
         | 
| 13 | 
            +
                  unspecified: "Ospecificerat"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "stort decimaltal"
         | 
    
        data/lib/locales/sw.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ sw: | |
| 9 9 | 
             
                  into_any: "haikuweza kubadilishwa kuwa moja ya: %{types}"
         | 
| 10 10 | 
             
                  unknown: "aina isiyojulikana ya mabadiliko %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Zisizofaa"
         | 
| 13 | 
            +
                  unspecified: "Haijaspecifikwa"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "safu"
         | 
| 16 16 | 
             
                  big_decimal: "desimali kubwa"
         | 
    
        data/lib/locales/ta.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ ta: | |
| 9 9 | 
             
                  into_any: "பின்வருவனவற்றில் ஒன்றாக மாற்ற முடியவில்லை: %{types}"
         | 
| 10 10 | 
             
                  unknown: "தெரியாத %{type} மாற்ற வகை"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "தவறான | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "தவறான"
         | 
| 13 | 
            +
                  unspecified: "குறிப்பிடப்படாத"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "வரிசை"
         | 
| 16 16 | 
             
                  big_decimal: "பெரிய தசமம்"
         | 
    
        data/lib/locales/te.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ te: | |
| 9 9 | 
             
                  into_any: "ఈ క్రింది వాటిలో ఒకటిగా మార్చలేకపోయింది: %{types}"
         | 
| 10 10 | 
             
                  unknown: "తెలియని %{type} మార్పు రకం"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "చెల్లని | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "చెల్లని"
         | 
| 13 | 
            +
                  unspecified: "నిర్దిష్టం కాదు"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "అరే"
         | 
| 16 16 | 
             
                  big_decimal: "పెద్ద దశాంశం"
         | 
    
        data/lib/locales/th.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ th: | |
| 9 9 | 
             
                  into_any: "ไม่สามารถแปลงเป็นหนึ่งใน: %{types} ได้"
         | 
| 10 10 | 
             
                  unknown: "ประเภทการแปลง %{type} ที่ไม่รู้จัก"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "ไม่ถูกต้อง"
         | 
| 13 | 
            +
                  unspecified: "ไม่ระบุ"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "อาร์เรย์"
         | 
| 16 16 | 
             
                  big_decimal: "ทศนิยมขนาดใหญ่"
         | 
    
        data/lib/locales/tl.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ tl: | |
| 9 9 | 
             
                  into_any: "hindi ma-convert sa isa sa: %{types}"
         | 
| 10 10 | 
             
                  unknown: "hindi kilalang %{type} conversion type"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Hindi  | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Hindi wasto"
         | 
| 13 | 
            +
                  unspecified: "Hindi tinukoy"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "malaking decimal"
         | 
    
        data/lib/locales/tr.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ tr: | |
| 9 9 | 
             
                  into_any: "şunlardan birine dönüştürülemedi: %{types}"
         | 
| 10 10 | 
             
                  unknown: "bilinmeyen %{type} dönüştürme türü"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Geçersiz | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Geçersiz"
         | 
| 13 | 
            +
                  unspecified: "Belirtilmemiş"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "dizi"
         | 
| 16 16 | 
             
                  big_decimal: "büyük ondalık"
         | 
    
        data/lib/locales/tt.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ tt: | |
| 9 9 | 
             
                  into_any: "боларның берсенә күчерә алмады: %{types}"
         | 
| 10 10 | 
             
                  unknown: "билгесез %{type} күчерү төре"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Дөрес булмаган | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Дөрес булмаган"
         | 
| 13 | 
            +
                  unspecified: "Күрсәтелмәгән"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "массив"
         | 
| 16 16 | 
             
                  big_decimal: "зур унарлы"
         | 
    
        data/lib/locales/ug.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ ug: | |
| 9 9 | 
             
                  into_any: "بۇلارنىڭ بىرىگە ئايلاندۇرالمايدۇ: %{types}"
         | 
| 10 10 | 
             
                  unknown: "نامەلۇم %{type} ئايلاندۇرۇش تىپى"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "ئىناۋەتسىز | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "ئىناۋەتسىز"
         | 
| 13 | 
            +
                  unspecified: "بەلگىلەنمىگەن"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "تىزىملىك"
         | 
| 16 16 | 
             
                  big_decimal: "چوڭ ئونلۇق"
         | 
    
        data/lib/locales/uk.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ uk: | |
| 9 9 | 
             
                  into_any: "не вдалося перетворити на один з: %{types}"
         | 
| 10 10 | 
             
                  unknown: "невідомий тип перетворення %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Невірні | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Невірні"
         | 
| 13 | 
            +
                  unspecified: "Не вказано"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "масив"
         | 
| 16 16 | 
             
                  big_decimal: "велике десяткове число"
         | 
    
        data/lib/locales/ur.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ ur: | |
| 9 9 | 
             
                  into_any: "ان میں سے کسی ایک میں تبدیل نہیں کر سکا: %{types}"
         | 
| 10 10 | 
             
                  unknown: "نامعلوم %{type} تبدیلی کی قسم"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "غلط | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "غلط"
         | 
| 13 | 
            +
                  unspecified: "غیر متعین"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "آرے"
         | 
| 16 16 | 
             
                  big_decimal: "بڑا اعشاری"
         | 
    
        data/lib/locales/uz.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ uz: | |
| 9 9 | 
             
                  into_any: "bularning biriga o'tkazib bo'lmadi: %{types}"
         | 
| 10 10 | 
             
                  unknown: "noma'lum %{type} o'tkazish turi"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: "Noto'g'ri | 
| 13 | 
            -
                  unspecified: " | 
| 12 | 
            +
                  invalid: "Noto'g'ri"
         | 
| 13 | 
            +
                  unspecified: "Ko'rsatilmagan"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "massiv"
         | 
| 16 16 | 
             
                  big_decimal: "katta o'nlik"
         | 
    
        data/lib/locales/vi.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ vi: | |
| 9 9 | 
             
                  into_any: "không thể chuyển đổi thành một trong: %{types}"
         | 
| 10 10 | 
             
                  unknown: "kiểu chuyển đổi %{type} không xác định"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: "Không  | 
| 12 | 
            +
                  invalid: "Không hợp lệ"
         | 
| 13 | 
            +
                  unspecified: "Không xác định"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "mảng"
         | 
| 16 16 | 
             
                  big_decimal: "số thập phân lớn"
         | 
    
        data/lib/locales/wo.yml
    CHANGED
    
    | @@ -9,8 +9,8 @@ wo: | |
| 9 9 | 
             
                  into_any: "duñu ko man a soppi ci benn ci: %{types}"
         | 
| 10 10 | 
             
                  unknown: "xam-xam bu ñu waxul bu soppi %{type}"
         | 
| 11 11 | 
             
                faults:
         | 
| 12 | 
            -
                  invalid: " | 
| 13 | 
            -
                  unspecified: "Duñu wax | 
| 12 | 
            +
                  invalid: "Ñu waxul"
         | 
| 13 | 
            +
                  unspecified: "Duñu wax"
         | 
| 14 14 | 
             
                types:
         | 
| 15 15 | 
             
                  array: "array"
         | 
| 16 16 | 
             
                  big_decimal: "desimal bu góor"
         | 
    
        data/lib/locales/zh-CN.yml
    CHANGED
    
    
    
        data/lib/locales/zh-HK.yml
    CHANGED
    
    
    
        data/lib/locales/zh-TW.yml
    CHANGED
    
    
    
        data/lib/locales/zh-YUE.yml
    CHANGED
    
    
    
        data/mkdocs.yml
    ADDED
    
    | @@ -0,0 +1,122 @@ | |
| 1 | 
            +
            # yaml-language-server: $schema=https://squidfunk.github.io/mkdocs-material/schema.json
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            site_name: CMDx
         | 
| 4 | 
            +
            site_url: https://drexed.github.io/cmdx/
         | 
| 5 | 
            +
            site_description: Build business logic that's powerful, predictable, and chaos-free.
         | 
| 6 | 
            +
            site_author: drexed
         | 
| 7 | 
            +
            repo_name: drexed/cmdx
         | 
| 8 | 
            +
            repo_url: https://github.com/drexed/cmdx
         | 
| 9 | 
            +
            edit_uri: edit/main/docs/
         | 
| 10 | 
            +
            copyright: Drexed, Inc. © 2025 - EoT
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            theme:
         | 
| 13 | 
            +
              name: material
         | 
| 14 | 
            +
              logo: assets/favicon.svg
         | 
| 15 | 
            +
              favicon: assets/favicon.ico
         | 
| 16 | 
            +
              icon:
         | 
| 17 | 
            +
                repo: fontawesome/brands/github
         | 
| 18 | 
            +
              font:
         | 
| 19 | 
            +
                text: Inter
         | 
| 20 | 
            +
                code: IBM Plex Mono
         | 
| 21 | 
            +
              palette:
         | 
| 22 | 
            +
                # Palette toggle for automatic mode
         | 
| 23 | 
            +
                - media: "(prefers-color-scheme)"
         | 
| 24 | 
            +
                  primary: custom
         | 
| 25 | 
            +
                  accent: custom
         | 
| 26 | 
            +
                  toggle:
         | 
| 27 | 
            +
                    icon: material/brightness-auto
         | 
| 28 | 
            +
                    name: Switch to light mode
         | 
| 29 | 
            +
                # Palette toggle for light mode
         | 
| 30 | 
            +
                - media: "(prefers-color-scheme: light)"
         | 
| 31 | 
            +
                  scheme: default
         | 
| 32 | 
            +
                  primary: custom
         | 
| 33 | 
            +
                  accent: custom
         | 
| 34 | 
            +
                  toggle:
         | 
| 35 | 
            +
                    icon: material/brightness-7
         | 
| 36 | 
            +
                    name: Switch to dark mode
         | 
| 37 | 
            +
                # Palette toggle for dark mode
         | 
| 38 | 
            +
                - media: "(prefers-color-scheme: dark)"
         | 
| 39 | 
            +
                  scheme: slate
         | 
| 40 | 
            +
                  primary: custom
         | 
| 41 | 
            +
                  accent: custom
         | 
| 42 | 
            +
                  toggle:
         | 
| 43 | 
            +
                    icon: material/brightness-4
         | 
| 44 | 
            +
                    name: Switch to system preference
         | 
| 45 | 
            +
              features:
         | 
| 46 | 
            +
                - navigation.footer
         | 
| 47 | 
            +
                - navigation.instant
         | 
| 48 | 
            +
                - navigation.instant.prefetch
         | 
| 49 | 
            +
                - navigation.instant.progress
         | 
| 50 | 
            +
                - navigation.tracking
         | 
| 51 | 
            +
                - navigation.sections
         | 
| 52 | 
            +
                - navigation.expand
         | 
| 53 | 
            +
                - navigation.path
         | 
| 54 | 
            +
                - navigation.top
         | 
| 55 | 
            +
                - search.share
         | 
| 56 | 
            +
                - search.suggest
         | 
| 57 | 
            +
                - search.highlight
         | 
| 58 | 
            +
                - content.code.copy
         | 
| 59 | 
            +
                - content.code.annotate
         | 
| 60 | 
            +
                - content.tabs.link
         | 
| 61 | 
            +
                - content.tooltips
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            markdown_extensions:
         | 
| 64 | 
            +
              - admonition
         | 
| 65 | 
            +
              - pymdownx.details
         | 
| 66 | 
            +
              - pymdownx.superfences
         | 
| 67 | 
            +
              - pymdownx.highlight:
         | 
| 68 | 
            +
                  anchor_linenums: true
         | 
| 69 | 
            +
                  line_spans: __span
         | 
| 70 | 
            +
                  pygments_lang_class: true
         | 
| 71 | 
            +
              - pymdownx.inlinehilite
         | 
| 72 | 
            +
              - pymdownx.snippets
         | 
| 73 | 
            +
              - pymdownx.tabbed:
         | 
| 74 | 
            +
                  alternate_style: true
         | 
| 75 | 
            +
              - tables
         | 
| 76 | 
            +
              - attr_list
         | 
| 77 | 
            +
              - md_in_html
         | 
| 78 | 
            +
              - toc:
         | 
| 79 | 
            +
                  permalink: true
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            plugins:
         | 
| 82 | 
            +
              - search
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            nav:
         | 
| 85 | 
            +
              - Home: index.md
         | 
| 86 | 
            +
              - Getting Started: getting_started.md
         | 
| 87 | 
            +
              - Basics:
         | 
| 88 | 
            +
                - Setup: basics/setup.md
         | 
| 89 | 
            +
                - Execution: basics/execution.md
         | 
| 90 | 
            +
                - Context: basics/context.md
         | 
| 91 | 
            +
                - Chain: basics/chain.md
         | 
| 92 | 
            +
              - Interruptions:
         | 
| 93 | 
            +
                - Halt: interruptions/halt.md
         | 
| 94 | 
            +
                - Faults: interruptions/faults.md
         | 
| 95 | 
            +
                - Exceptions: interruptions/exceptions.md
         | 
| 96 | 
            +
              - Outcomes:
         | 
| 97 | 
            +
                - Result: outcomes/result.md
         | 
| 98 | 
            +
                - States: outcomes/states.md
         | 
| 99 | 
            +
                - Statuses: outcomes/statuses.md
         | 
| 100 | 
            +
              - Attributes:
         | 
| 101 | 
            +
                - Definitions: attributes/definitions.md
         | 
| 102 | 
            +
                - Naming: attributes/naming.md
         | 
| 103 | 
            +
                - Coercions: attributes/coercions.md
         | 
| 104 | 
            +
                - Validations: attributes/validations.md
         | 
| 105 | 
            +
                - Defaults: attributes/defaults.md
         | 
| 106 | 
            +
                - Transformations: attributes/transformations.md
         | 
| 107 | 
            +
              - Callbacks: callbacks.md
         | 
| 108 | 
            +
              - Middlewares: middlewares.md
         | 
| 109 | 
            +
              - Logging: logging.md
         | 
| 110 | 
            +
              - Internationalization: internationalization.md
         | 
| 111 | 
            +
              - Deprecation: deprecation.md
         | 
| 112 | 
            +
              - Workflows: workflows.md
         | 
| 113 | 
            +
              - Tips and Tricks: tips_and_tricks.md
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            extra:
         | 
| 116 | 
            +
              generator: false
         | 
| 117 | 
            +
              social:
         | 
| 118 | 
            +
                - icon: fontawesome/brands/github
         | 
| 119 | 
            +
                  link: https://github.com/drexed/cmdx
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            extra_css:
         | 
| 122 | 
            +
              - stylesheets/extra.css
         | 
| Binary file | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <svg width="104.098" height="112.266" viewBox="0 0 60 64.708" xmlns="http://www.w3.org/2000/svg"><path d="M29.907 17.723 26.4 23.17 13.384 3.323h3.507l9.508 14.77 1.938-3.139L18.737 0H7.291L26.4 29.262 45.045 0h-3.97L30 17.54zM9.23 61.293H6.091l18.646-29.447L4.43.093H.46l20.308 31.846L0 64.708l10.985-.092 39.138-61.2h3.323L31.57 37.754l13.662 21.415h3.97L35.445 37.754 59.537.093H48.37zm29.63-23.262 15.047 23.262H43.384l-13.662-20.77-15.508 24.093h3.97l11.63-18 11.723 18H60L41.17 35.354l-.278-.461z" fill="#000"/></svg>
         | 
| Binary file | 
    
        data/src/cmdx-logo.svg
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            <svg width="352.2" height="112.266" viewBox="0 0 203 64.708" xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve"><path d="M172.908 17.723 169.4 23.17 156.385 3.323h3.507l9.508 14.77 1.938-3.139L161.738 0h-11.446L169.4 29.262 188.046 0h-3.97L173 17.54zm-20.677 43.57h-3.139l18.646-29.447L147.431.093h-3.97l20.308 31.846L143 64.708l10.985-.092 39.138-61.2h3.323L174.57 37.754l13.662 21.415h3.969l-13.754-21.415L202.538.093H191.37zm29.63-23.262 15.047 23.262h-10.523l-13.662-20.77-15.508 24.093h3.97l11.63-18 11.723 18H203l-18.83-29.262-.278-.461z" fill="#fe1817"/><path d="M41.667 14v12.8h-23.42c-3.214.272-5.665 3.05-5.665 6.318s2.45 5.937 5.664 6.318H33.17v4.248H18.246a10.65 10.65 0 0 1-9.858-10.62c0-5.447 4.194-10.077 9.64-10.512h19.39v-4.303H18.246v.054A14.823 14.823 0 0 0 4.248 33.118c0 7.898 6.21 14.38 13.998 14.815h19.172v-8.497h4.249v12.745h-23.42A19.063 19.063 0 0 1 0 33.118a19.033 19.033 0 0 1 18.246-19.063zM75 35.623 87.2 14h13.508v38.181H87.963v-14.27l-8.116 14.27h-9.749L57.734 30.504v-8.007l14.87 25.436h4.792l14.815-25.436v25.436h4.249V18.249H89.65l-14.76 25.49-14.542-25.49H53.54v29.684h4.194v-8.007l4.249 7.299v4.956H49.292v-38.18H62.8zM108.333 14h23.42C141.94 14.436 150 22.824 150 33.064c0 10.294-8.061 18.681-18.246 19.117h-23.42V22.497h23.42a10.65 10.65 0 0 1 9.858 10.621c0 5.447-4.194 10.13-9.64 10.566H116.83V30.286h4.248v9.15l10.676-.054c3.213-.273 5.664-3.05 5.664-6.264 0-2.778-1.743-5.065-4.194-5.991-.926-.382-1.47-.382-2.94-.382h-17.702v21.188h19.172a14.84 14.84 0 0 0 13.998-14.87c0-7.897-6.21-14.379-13.998-14.814h-23.42z"/></svg>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cmdx
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.9.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Juan Gomez
         | 
| @@ -214,10 +214,14 @@ files: | |
| 214 214 | 
             
            - LLM.md
         | 
| 215 215 | 
             
            - README.md
         | 
| 216 216 | 
             
            - Rakefile
         | 
| 217 | 
            +
            - docs/.DS_Store
         | 
| 218 | 
            +
            - docs/assets/favicon.ico
         | 
| 219 | 
            +
            - docs/assets/favicon.svg
         | 
| 217 220 | 
             
            - docs/attributes/coercions.md
         | 
| 218 221 | 
             
            - docs/attributes/defaults.md
         | 
| 219 222 | 
             
            - docs/attributes/definitions.md
         | 
| 220 223 | 
             
            - docs/attributes/naming.md
         | 
| 224 | 
            +
            - docs/attributes/transformations.md
         | 
| 221 225 | 
             
            - docs/attributes/validations.md
         | 
| 222 226 | 
             
            - docs/basics/chain.md
         | 
| 223 227 | 
             
            - docs/basics/context.md
         | 
| @@ -226,6 +230,7 @@ files: | |
| 226 230 | 
             
            - docs/callbacks.md
         | 
| 227 231 | 
             
            - docs/deprecation.md
         | 
| 228 232 | 
             
            - docs/getting_started.md
         | 
| 233 | 
            +
            - docs/index.md
         | 
| 229 234 | 
             
            - docs/internationalization.md
         | 
| 230 235 | 
             
            - docs/interruptions/exceptions.md
         | 
| 231 236 | 
             
            - docs/interruptions/faults.md
         | 
| @@ -235,8 +240,11 @@ files: | |
| 235 240 | 
             
            - docs/outcomes/result.md
         | 
| 236 241 | 
             
            - docs/outcomes/states.md
         | 
| 237 242 | 
             
            - docs/outcomes/statuses.md
         | 
| 243 | 
            +
            - docs/stylesheets/extra.css
         | 
| 238 244 | 
             
            - docs/tips_and_tricks.md
         | 
| 239 245 | 
             
            - docs/workflows.md
         | 
| 246 | 
            +
            - examples/active_record_query_tagging.md
         | 
| 247 | 
            +
            - examples/paper_trail_whatdunnit.md
         | 
| 240 248 | 
             
            - lib/cmdx.rb
         | 
| 241 249 | 
             
            - lib/cmdx/.DS_Store
         | 
| 242 250 | 
             
            - lib/cmdx/attribute.rb
         | 
| @@ -265,7 +273,6 @@ files: | |
| 265 273 | 
             
            - lib/cmdx/exceptions.rb
         | 
| 266 274 | 
             
            - lib/cmdx/executor.rb
         | 
| 267 275 | 
             
            - lib/cmdx/faults.rb
         | 
| 268 | 
            -
            - lib/cmdx/freezer.rb
         | 
| 269 276 | 
             
            - lib/cmdx/identifier.rb
         | 
| 270 277 | 
             
            - lib/cmdx/locale.rb
         | 
| 271 278 | 
             
            - lib/cmdx/log_formatters/json.rb
         | 
| @@ -386,7 +393,11 @@ files: | |
| 386 393 | 
             
            - lib/locales/zh-HK.yml
         | 
| 387 394 | 
             
            - lib/locales/zh-TW.yml
         | 
| 388 395 | 
             
            - lib/locales/zh-YUE.yml
         | 
| 389 | 
            -
            -  | 
| 396 | 
            +
            - mkdocs.yml
         | 
| 397 | 
            +
            - src/cmdx-dark-logo.png
         | 
| 398 | 
            +
            - src/cmdx-favicon.svg
         | 
| 399 | 
            +
            - src/cmdx-light-logo.png
         | 
| 400 | 
            +
            - src/cmdx-logo.svg
         | 
| 390 401 | 
             
            homepage: https://github.com/drexed/cmdx
         | 
| 391 402 | 
             
            licenses:
         | 
| 392 403 | 
             
            - MIT
         | 
| @@ -411,7 +422,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 411 422 | 
             
                - !ruby/object:Gem::Version
         | 
| 412 423 | 
             
                  version: '0'
         | 
| 413 424 | 
             
            requirements: []
         | 
| 414 | 
            -
            rubygems_version: 3.7. | 
| 425 | 
            +
            rubygems_version: 3.7.2
         | 
| 415 426 | 
             
            specification_version: 4
         | 
| 416 427 | 
             
            summary: CMDx is a framework for building maintainable business processes.
         | 
| 417 428 | 
             
            test_files: []
         | 
    
        data/lib/cmdx/freezer.rb
    DELETED
    
    | @@ -1,51 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module CMDx
         | 
| 4 | 
            -
              # Provides freezing functionality for CMDx tasks and their associated objects.
         | 
| 5 | 
            -
              #
         | 
| 6 | 
            -
              # The Freezer module is responsible for making task objects immutable after execution
         | 
| 7 | 
            -
              # to prevent accidental modifications and ensure data integrity. It can be disabled
         | 
| 8 | 
            -
              # via environment variable for testing or debugging purposes.
         | 
| 9 | 
            -
              module Freezer
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                extend self
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                # Freezes a task and its associated objects to prevent modifications.
         | 
| 14 | 
            -
                #
         | 
| 15 | 
            -
                # This method makes the task, result, context, and chain immutable after execution.
         | 
| 16 | 
            -
                # Freezing can be skipped by setting the SKIP_CMDX_FREEZING environment variable.
         | 
| 17 | 
            -
                #
         | 
| 18 | 
            -
                # @param task [Task] The task instance to freeze
         | 
| 19 | 
            -
                # @option ENV["SKIP_CMDX_FREEZING"] [String, Boolean] Set to "true" or true to skip freezing
         | 
| 20 | 
            -
                #
         | 
| 21 | 
            -
                # @raise [RuntimeError] If attempting to stub on frozen objects
         | 
| 22 | 
            -
                #
         | 
| 23 | 
            -
                # @example Freeze a completed task
         | 
| 24 | 
            -
                #   task = MyTask.new
         | 
| 25 | 
            -
                #   task.execute
         | 
| 26 | 
            -
                #   CMDx::Freezer.immute(task)
         | 
| 27 | 
            -
                #   # task, result, context, and chain are now frozen
         | 
| 28 | 
            -
                # @example Skip freezing for testing
         | 
| 29 | 
            -
                #   ENV["SKIP_CMDX_FREEZING"] = "true"
         | 
| 30 | 
            -
                #   CMDx::Freezer.immute(task)
         | 
| 31 | 
            -
                #   # No freezing occurs
         | 
| 32 | 
            -
                def immute(task)
         | 
| 33 | 
            -
                  # Stubbing on frozen objects is not allowed
         | 
| 34 | 
            -
                  skip_freezing = ENV.fetch("SKIP_CMDX_FREEZING", false)
         | 
| 35 | 
            -
                  return if Coercions::Boolean.call(skip_freezing)
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                  task.freeze
         | 
| 38 | 
            -
                  task.result.freeze
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                  # Freezing the context and chain can only be done
         | 
| 41 | 
            -
                  # once the outer-most task has completed.
         | 
| 42 | 
            -
                  return unless task.result.index.zero?
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                  task.context.freeze
         | 
| 45 | 
            -
                  task.chain.freeze
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                  Chain.clear
         | 
| 48 | 
            -
                end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
              end
         | 
| 51 | 
            -
            end
         | 
    
        data/src/cmdx-logo.png
    DELETED
    
    | Binary file |