ro 4.4.0 → 5.1.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/Gemfile.lock +42 -16
 - data/MIGRATION.md +320 -0
 - data/README.md +31 -19
 - data/a.yml +60 -0
 - data/bin/ro +10 -0
 - data/lib/ro/_lib.rb +1 -1
 - data/lib/ro/asset.rb +48 -6
 - data/lib/ro/collection.rb +51 -13
 - data/lib/ro/migrator.rb +285 -0
 - data/lib/ro/node.rb +53 -13
 - data/lib/ro/root.rb +75 -1
 - data/lib/ro/script/migrate.rb +204 -0
 - data/lib/ro/script/server.rb +1 -1
 - data/lib/ro.rb +1 -0
 - data/public/api/ro/index-1.json +82 -148
 - data/public/api/ro/index.json +82 -148
 - data/public/api/ro/nerd/fastest-possible-embeddings/index.json +7 -8
 - data/public/api/ro/nerd/ima/index.json +3 -4
 - data/public/api/ro/nerd/index/index.json +5 -6
 - data/public/api/ro/nerd/index-1.json +15 -18
 - data/public/api/ro/nerd/index.json +15 -18
 - data/public/api/ro/pages/contact/index.json +4 -5
 - data/public/api/ro/pages/cv/index.json +3 -4
 - data/public/api/ro/pages/disco/index.json +9 -10
 - data/public/api/ro/pages/index/index.json +2 -3
 - data/public/api/ro/pages/index-1.json +25 -82
 - data/public/api/ro/pages/index.json +25 -82
 - data/public/api/ro/pages/jess/index.json +4 -5
 - data/public/api/ro/pages/now/index.json +3 -4
 - data/public/api/ro/posts/almost-died-in-an-ice-cave/index.json +21 -22
 - data/public/api/ro/posts/facebook-and-global-extremism/index.json +8 -9
 - data/public/api/ro/posts/index-1.json +42 -48
 - data/public/api/ro/posts/index.json +42 -48
 - data/public/api/ro/posts/lemmings-considered-harmful/index.json +3 -4
 - data/public/api/ro/posts/lost-in-the-desert/index.json +3 -4
 - data/public/api/ro/posts/mission/index.json +3 -4
 - data/public/api/ro/posts/return-your-laptop/index.json +4 -5
 - data/ro.gemspec +247 -18
 - data/specs/001-simplify-asset-structure/IMPLEMENTATION_SUMMARY.md +212 -0
 - data/specs/001-simplify-asset-structure/checklists/requirements.md +36 -0
 - data/specs/001-simplify-asset-structure/contracts/collection_api.md +407 -0
 - data/specs/001-simplify-asset-structure/contracts/migrator_api.md +461 -0
 - data/specs/001-simplify-asset-structure/contracts/node_api.md +294 -0
 - data/specs/001-simplify-asset-structure/data-model.md +381 -0
 - data/specs/001-simplify-asset-structure/plan.md +90 -0
 - data/specs/001-simplify-asset-structure/quickstart.md +575 -0
 - data/specs/001-simplify-asset-structure/research.md +333 -0
 - data/specs/001-simplify-asset-structure/spec.md +127 -0
 - data/specs/001-simplify-asset-structure/tasks.md +349 -0
 - data/test/fixtures/new_structure/mixed/test-json.json +5 -0
 - data/test/fixtures/new_structure/mixed/test-yaml.yml +3 -0
 - data/test/fixtures/new_structure/posts/metadata-only.yml +7 -0
 - data/test/fixtures/new_structure/posts/nested-test/assets/subdirectory/image.png +2 -0
 - data/test/fixtures/new_structure/posts/nested-test.yml +7 -0
 - data/test/fixtures/new_structure/posts/sample-post/assets/body.md +5 -0
 - data/test/fixtures/new_structure/posts/sample-post/assets/image.jpg +2 -0
 - data/test/fixtures/new_structure/posts/sample-post.yml +7 -0
 - data/test/fixtures/old_structure/posts/assets-only/assets/test.txt +1 -0
 - data/test/fixtures/old_structure/posts/sample-post/assets/body.md +5 -0
 - data/test/fixtures/old_structure/posts/sample-post/assets/image.jpg +2 -0
 - data/test/fixtures/old_structure/posts/sample-post/attributes.yml +2 -0
 - data/test/integration/ro_integration_test.rb +165 -0
 - data/test/test_helper.rb +149 -0
 - data/test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/attributes.yml +7 -0
 - data/test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/attributes.yml +7 -0
 - data/test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/attributes.yml +7 -0
 - data/test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/attributes.yml +7 -0
 - data/test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/attributes.yml +7 -0
 - data/test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/attributes.yml +7 -0
 - data/test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post/image.jpg +2 -0
 - data/test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post.yml +7 -0
 - data/test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post/body.md +5 -0
 - data/test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post/image.jpg +2 -0
 - data/test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post.yml +7 -0
 - data/test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/posts/assets-only/assets/test.txt +1 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets/body.md +5 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets/image.jpg +2 -0
 - data/test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/attributes.yml +2 -0
 - data/test/tmp/new_structure_test_1760746452/mixed/test-json.json +5 -0
 - data/test/tmp/new_structure_test_1760746452/mixed/test-yaml.yml +3 -0
 - data/test/tmp/new_structure_test_1760746452/posts/metadata-only.yml +7 -0
 - data/test/tmp/new_structure_test_1760746452/posts/nested-test/subdirectory/image.png +2 -0
 - data/test/tmp/new_structure_test_1760746452/posts/nested-test.yml +7 -0
 - data/test/tmp/new_structure_test_1760746452/posts/sample-post/body.md +5 -0
 - data/test/tmp/new_structure_test_1760746452/posts/sample-post/image.jpg +2 -0
 - data/test/tmp/new_structure_test_1760746452/posts/sample-post.yml +7 -0
 - data/test/unit/asset_test.rb +90 -0
 - data/test/unit/collection_test.rb +127 -0
 - data/test/unit/migrator_test.rb +209 -0
 - data/test/unit/node_test.rb +138 -0
 - metadata +127 -19
 - data/public/api/ro/pages/about/index.json +0 -60
 - /data/public/ro/nerd/{fastest-possible-embeddings/attributes.yml → fastest-possible-embeddings.yml} +0 -0
 - /data/public/ro/nerd/{ima/attributes.yml → ima.yml} +0 -0
 - /data/public/ro/nerd/{index/attributes.yml → index.yml} +0 -0
 - /data/public/ro/pages/{contact/attributes.yml → contact.yml} +0 -0
 - /data/public/ro/pages/{cv/attributes.yml → cv.yml} +0 -0
 - /data/public/ro/pages/{disco/attributes.yml → disco.yml} +0 -0
 - /data/public/ro/pages/{index/attributes.yml → index.yml} +0 -0
 - /data/public/ro/pages/{jess/attributes.yml → jess.yml} +0 -0
 - /data/public/ro/pages/{now/attributes.yml → now.yml} +0 -0
 - /data/public/ro/posts/{almost-died-in-an-ice-cave/attributes.yml → almost-died-in-an-ice-cave.yml} +0 -0
 - /data/public/ro/posts/{facebook-and-global-extremism/attributes.yml → facebook-and-global-extremism.yml} +0 -0
 - /data/public/ro/posts/{lemmings-considered-harmful/attributes.yml → lemmings-considered-harmful.yml} +0 -0
 - /data/public/ro/posts/{lost-in-the-desert/attributes.yml → lost-in-the-desert.yml} +0 -0
 - /data/public/ro/posts/{mission/attributes.yml → mission.yml} +0 -0
 - /data/public/ro/posts/{return-your-laptop/attributes.yml → return-your-laptop.yml} +0 -0
 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  },
         
     | 
| 
       11 
11 
     | 
    
         
             
                  "body": "<div class=\"ro markdown\">\n  <h5 id=\"the-rise-and-fall-of-the-lemmings\">the rise and fall of the lemmings</h5>\n\n<p><img src='/ro/posts/lemmings-considered-harmful/assets/lemming.jpeg' alt=\"\" /></p>\n\n<p>in the heart of the tundra, a forgotten corner of the world, a small colony of lemmings thrived. these furry creatures, with their insatiable appetite for grass and their unwavering determination to reproduce, had long been a part of the delicate ecosystem. however, a series of fortunate events, or perhaps unfortunate coincidences, led to an unprecedented boom in their population.</p>\n\n<p>the lemmings, once a modest presence, began to multiply at an alarming rate.\ntheir numbers swelled, their burrows multiplied, and their insatiable hunger\nfor grass depleted the once-abundant fields. the other creatures of the\ntundra, the foxes, the owls, and the hares, watched in growing alarm as\ntheir food sources dwindled. the foxes and owls, simply outnumbered, were\nunable to compete with the overwhelming numbers of lemmings and the hares\nsimply could not find enough food.</p>\n\n<p>the lemmings, oblivious to the plight of their fellow inhabitants, continued their relentless pursuit of reproduction. their population grew exponentially, their tunnels crisscrossing the landscape like a network of subterranean highways. the once-verdant tundra began to show signs of strain, the grass patches turning brown and barren.</p>\n\n<p>the hares, once the dominant herbivores of the tundra, were now forced to compete with the insatiable lemmings for the dwindling food supply. their numbers dwindled, their once-proud herds reduced to scattered individuals.</p>\n\n<p>the lemmings, however, remained unconcerned. their focus remained firmly on reproduction, their tunnels expanding further, their hunger growing more insatiable. the tundra, once a vibrant ecosystem, was now a desolate wasteland, a victim of the lemmings’ unchecked growth.</p>\n\n<p>as the food supply dwindled, the lemmings began to turn on each other. fights erupted over scraps of grass, burrows were invaded, and the once-united colony fractured into warring factions. disease, a consequence of overcrowding and malnutrition, spread through the weakened population.</p>\n\n<p>amidst the chaos, a small group of lemmings emerged, driven by a sense of compassion and a desire to save their kind.</p>\n\n<hr />\n\n<p><strong>these enlightened lemmings, known as the “reformers,” sought to address the issues of overpopulation, disease, and infighting.</strong></p>\n\n<hr />\n\n<p>the reformers, armed with a deep understanding of their society, implemented a series of reforms aimed at improving living conditions and promoting harmony. they established communal granaries to ensure fair distribution of food, constructed improved burrows to prevent disease outbreaks, and promoted peaceful coexistence among the different factions.</p>\n\n<p>the reformers’ efforts yielded positive results. the death rate decreased, the incidence of disease declined, and the overall quality of life for the lemmings improved. however, the underlying problems of overpopulation and resource depletion remained unresolved.</p>\n\n<p>the reformers, blinded by their focus on short-term gains, failed to recognize the long-term consequences of their actions. their interventions, while seemingly beneficial, only served to prolong the inevitable collapse of the lemming population.</p>\n\n<p>as the tundra’s carrying capacity was exceeded, the lemmings’ numbers continued to rise, their impact on the ecosystem intensifying. the once-vibrant ecosystem, now dominated by the lemmings, could no longer sustain life. the foxes, the owls, and the hares, unable to compete with the overwhelming numbers of lemmings, perished.</p>\n\n<p>the lemmings, once a vital part of the tundra’s ecosystem, had become its destroyers. their unchecked growth, fueled by a relentless pursuit of reproduction, had led to the demise of their own kind and the destruction of their habitat.</p>\n\n<blockquote>\n  <p>frozen tundra lies<br />\nlemmings’ ghostly shadows dance <br />\nnature’s balance lost</p>\n</blockquote>\n\n</div>\n",
         
     | 
| 
       12 
12 
     | 
    
         
             
                  "assets": {
         
     | 
| 
       13 
     | 
    
         
            -
                    " 
     | 
| 
      
 13 
     | 
    
         
            +
                    "lemming.jpeg": {
         
     | 
| 
       14 
14 
     | 
    
         
             
                      "url": "/ro/posts/lemmings-considered-harmful/assets/lemming.jpeg",
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "path": "posts/lemmings-considered-harmful/assets/lemming.jpeg",
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "size": 8,
         
     | 
| 
         @@ -28,11 +28,10 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    "id": "lemmings-considered-harmful",
         
     | 
| 
       29 
29 
     | 
    
         
             
                    "urls": [
         
     | 
| 
       30 
30 
     | 
    
         
             
                      "/ro/posts/lemmings-considered-harmful/assets/lemming.jpeg",
         
     | 
| 
       31 
     | 
    
         
            -
                      "/ro/posts/lemmings-considered-harmful/attributes.yml",
         
     | 
| 
       32 
31 
     | 
    
         
             
                      "/ro/posts/lemmings-considered-harmful/body.md"
         
     | 
| 
       33 
32 
     | 
    
         
             
                    ],
         
     | 
| 
       34 
     | 
    
         
            -
                    "created_at": "2025- 
     | 
| 
       35 
     | 
    
         
            -
                    "updated_at": "2025- 
     | 
| 
      
 33 
     | 
    
         
            +
                    "created_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
      
 34 
     | 
    
         
            +
                    "updated_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
       36 
35 
     | 
    
         
             
                    "rel": {
         
     | 
| 
       37 
36 
     | 
    
         
             
                      "curr": "posts/lemmings-considered-harmful",
         
     | 
| 
       38 
37 
     | 
    
         
             
                      "prev": "posts/facebook-and-global-extremism",
         
     | 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  },
         
     | 
| 
       11 
11 
     | 
    
         
             
                  "body": "<div class=\"ro markdown\">\n  <p>following is an AI generated summary of this article, so you won’t have to read it!</p>\n\n<blockquote>\n  <h3>”</h3>\n  <h1 id=\"fixme\">FIXME</h1>\n  <h3 id=\"-1\">”</h3>\n</blockquote>\n\n<h1 id=\"writeme\">WRITEME</h1>\n\n</div>\n",
         
     | 
| 
       12 
12 
     | 
    
         
             
                  "assets": {
         
     | 
| 
       13 
     | 
    
         
            -
                    " 
     | 
| 
      
 13 
     | 
    
         
            +
                    "og.jpg": {
         
     | 
| 
       14 
14 
     | 
    
         
             
                      "url": "/ro/posts/lost-in-the-desert/assets/og.jpg",
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "path": "posts/lost-in-the-desert/assets/og.jpg",
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "size": 8,
         
     | 
| 
         @@ -28,11 +28,10 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    "id": "lost-in-the-desert",
         
     | 
| 
       29 
29 
     | 
    
         
             
                    "urls": [
         
     | 
| 
       30 
30 
     | 
    
         
             
                      "/ro/posts/lost-in-the-desert/assets/og.jpg",
         
     | 
| 
       31 
     | 
    
         
            -
                      "/ro/posts/lost-in-the-desert/attributes.yml",
         
     | 
| 
       32 
31 
     | 
    
         
             
                      "/ro/posts/lost-in-the-desert/body.md"
         
     | 
| 
       33 
32 
     | 
    
         
             
                    ],
         
     | 
| 
       34 
     | 
    
         
            -
                    "created_at": "2025- 
     | 
| 
       35 
     | 
    
         
            -
                    "updated_at": "2025- 
     | 
| 
      
 33 
     | 
    
         
            +
                    "created_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
      
 34 
     | 
    
         
            +
                    "updated_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
       36 
35 
     | 
    
         
             
                    "rel": {
         
     | 
| 
       37 
36 
     | 
    
         
             
                      "curr": "posts/lost-in-the-desert",
         
     | 
| 
       38 
37 
     | 
    
         
             
                      "prev": "posts/lemmings-considered-harmful",
         
     | 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  },
         
     | 
| 
       11 
11 
     | 
    
         
             
                  "body": "<div class=\"ro markdown\">\n  <p>everyone should have a mission statement.  here is mine.</p>\n\n<ul>\n  <li><a href=\"/jess\">jess</a> and i wanna shower with tomatoes growing in it, and a dirt\nfloor.  like this one.</li>\n</ul>\n\n</div>\n",
         
     | 
| 
       12 
12 
     | 
    
         
             
                  "assets": {
         
     | 
| 
       13 
     | 
    
         
            -
                    " 
     | 
| 
      
 13 
     | 
    
         
            +
                    "og.jpg": {
         
     | 
| 
       14 
14 
     | 
    
         
             
                      "url": "/ro/posts/mission/assets/og.jpg",
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "path": "posts/mission/assets/og.jpg",
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "size": 8,
         
     | 
| 
         @@ -28,11 +28,10 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
                    "id": "mission",
         
     | 
| 
       29 
29 
     | 
    
         
             
                    "urls": [
         
     | 
| 
       30 
30 
     | 
    
         
             
                      "/ro/posts/mission/assets/og.jpg",
         
     | 
| 
       31 
     | 
    
         
            -
                      "/ro/posts/mission/attributes.yml",
         
     | 
| 
       32 
31 
     | 
    
         
             
                      "/ro/posts/mission/body.md"
         
     | 
| 
       33 
32 
     | 
    
         
             
                    ],
         
     | 
| 
       34 
     | 
    
         
            -
                    "created_at": "2025- 
     | 
| 
       35 
     | 
    
         
            -
                    "updated_at": "2025- 
     | 
| 
      
 33 
     | 
    
         
            +
                    "created_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
      
 34 
     | 
    
         
            +
                    "updated_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
       36 
35 
     | 
    
         
             
                    "rel": {
         
     | 
| 
       37 
36 
     | 
    
         
             
                      "curr": "posts/mission",
         
     | 
| 
       38 
37 
     | 
    
         
             
                      "prev": "posts/lost-in-the-desert",
         
     | 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  },
         
     | 
| 
       11 
11 
     | 
    
         
             
                  "body": "<div class=\"ro markdown\">\n  <p>following is an AI generated summary of this article, so you won’t have to read it!</p>\n\n<blockquote>\n  <h3>”</h3>\n  <p>A user on LinkedIn suggested that terminated employees should <strong>always</strong>\nreturn thier laptops, and that issue was cut and dried.</p>\n\n  <p><a href=\"/disco\">disco</a>, a tool for bringing real human subjectivity to AI was then\nused to examine public sentiment about this statement.</p>\n\n  <p>The responses varied, with some people feeling that employees should keep the\nlaptops as a small consolation or to help with job searching, while others felt\nthat keeping company property was unethical or a security risk.</p>\n\n  <p>Some people suggested that companies offer a buyout option for the laptops,\nwhile others felt that a clean break was best.</p>\n\n  <p>The responses highlight the complex and multifaceted nature of the issue, with\nno easy answers or universal agreement.</p>\n  <h3 id=\"-1\">”</h3>\n</blockquote>\n\n<p>i recently saw this unsolicited and undirected “suggestion” on linked-in (home\nof the weak sauce), suggesting that the <strong>only</strong> ethical move is to return your\nlaptop when you’ve been fired.</p>\n\n<p><img src='/ro/posts/return-your-laptop/assets/return-your-laptop.png' alt=\"return your laptop\" /></p>\n\n<p>while i do not condone brazen theft or just being a jerk, i personally\nconsidered this post astonishingly tone deaf, in light of the fear so many who\nhave recently been laid off are feeling.  for many, a computer, and the\ninternet, are their only lifelines to a potential future.</p>\n\n<p>this situation is one i have experienced personally.  i’ve been laid off, a\nfew years back, and went through a very, very difficult period (still to some\ndegree) where getting a job was a strangely recursive scenario - that is to\nsay, i needed money to buy a computer capable enough, to keep up with the\ntimes, to stay sharp, to get a job.  this is a real phenomenon experienced by\nmany.  a nice laptop for a developer costs a cool $4k.</p>\n\n<p>dan seemed pretty sure of himself so, i decided to run his theory through my\nnew thing, which i am calling <a href=\"/disco\">disco</a>.  as you can read for yourself,\ni think the issue is more nuanced than he suggests, and that, in this period\nof history, considering the massive ill will the general public is\nsnowballing, and getting ready to toss at corporations, it’s worth seeing what\nothers might think.  fwiw, <a href=\"/disco\">disco</a> lets you ask any question, and then\nget back answers that are informed by real human beings, at scale.</p>\n\n<p>it’s my little attempt to use their weapons against them.</p>\n\n<p>take some time, to review <a href=\"https://gist.github.com/ahoward/9696f63c118f7b9f102b04e5b4196ca5\">these results</a></p>\n\n<p><a href=\"/contact\">what do you think?</a></p>\n\n<p>ps.  in a future post, i’ll show you how you can do way, way, way better with\nyour development environment by ditching apple, microsoft, etc.  and moving to\nlinux and a chromebook.  my current dev box costs me $320 at best buy and i’m\nmore productive than ever.</p>\n\n<p><img src='/ro/posts/return-your-laptop/assets/og.jpg' alt=\"\" /></p>\n\n</div>\n",
         
     | 
| 
       12 
12 
     | 
    
         
             
                  "assets": {
         
     | 
| 
       13 
     | 
    
         
            -
                    " 
     | 
| 
      
 13 
     | 
    
         
            +
                    "og.jpg": {
         
     | 
| 
       14 
14 
     | 
    
         
             
                      "url": "/ro/posts/return-your-laptop/assets/og.jpg",
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "path": "posts/return-your-laptop/assets/og.jpg",
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "size": 8,
         
     | 
| 
         @@ -21,7 +21,7 @@ 
     | 
|
| 
       21 
21 
     | 
    
         
             
                      },
         
     | 
| 
       22 
22 
     | 
    
         
             
                      "src": null
         
     | 
| 
       23 
23 
     | 
    
         
             
                    },
         
     | 
| 
       24 
     | 
    
         
            -
                    " 
     | 
| 
      
 24 
     | 
    
         
            +
                    "return-your-laptop.png": {
         
     | 
| 
       25 
25 
     | 
    
         
             
                      "url": "/ro/posts/return-your-laptop/assets/return-your-laptop.png",
         
     | 
| 
       26 
26 
     | 
    
         
             
                      "path": "posts/return-your-laptop/assets/return-your-laptop.png",
         
     | 
| 
       27 
27 
     | 
    
         
             
                      "size": 8,
         
     | 
| 
         @@ -40,11 +40,10 @@ 
     | 
|
| 
       40 
40 
     | 
    
         
             
                    "urls": [
         
     | 
| 
       41 
41 
     | 
    
         
             
                      "/ro/posts/return-your-laptop/assets/og.jpg",
         
     | 
| 
       42 
42 
     | 
    
         
             
                      "/ro/posts/return-your-laptop/assets/return-your-laptop.png",
         
     | 
| 
       43 
     | 
    
         
            -
                      "/ro/posts/return-your-laptop/attributes.yml",
         
     | 
| 
       44 
43 
     | 
    
         
             
                      "/ro/posts/return-your-laptop/body.md"
         
     | 
| 
       45 
44 
     | 
    
         
             
                    ],
         
     | 
| 
       46 
     | 
    
         
            -
                    "created_at": "2025- 
     | 
| 
       47 
     | 
    
         
            -
                    "updated_at": "2025- 
     | 
| 
      
 45 
     | 
    
         
            +
                    "created_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
      
 46 
     | 
    
         
            +
                    "updated_at": "2025-10-18 03:05:00 +0000",
         
     | 
| 
       48 
47 
     | 
    
         
             
                    "rel": {
         
     | 
| 
       49 
48 
     | 
    
         
             
                      "curr": "posts/return-your-laptop",
         
     | 
| 
       50 
49 
     | 
    
         
             
                      "prev": "posts/mission",
         
     | 
    
        data/ro.gemspec
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            Gem::Specification::new do |spec|
         
     | 
| 
       5 
5 
     | 
    
         
             
              spec.name = "ro"
         
     | 
| 
       6 
     | 
    
         
            -
              spec.version = " 
     | 
| 
      
 6 
     | 
    
         
            +
              spec.version = "5.1.0"
         
     | 
| 
       7 
7 
     | 
    
         
             
              spec.required_ruby_version = '>= 3.0'
         
     | 
| 
       8 
8 
     | 
    
         
             
              spec.platform = Gem::Platform::RUBY
         
     | 
| 
       9 
9 
     | 
    
         
             
              spec.summary = "all your content in github, as god intended"
         
     | 
| 
         @@ -14,9 +14,11 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       14 
14 
     | 
    
         
             
            ["Gemfile",
         
     | 
| 
       15 
15 
     | 
    
         
             
             "Gemfile.lock",
         
     | 
| 
       16 
16 
     | 
    
         
             
             "LICENSE",
         
     | 
| 
      
 17 
     | 
    
         
            +
             "MIGRATION.md",
         
     | 
| 
       17 
18 
     | 
    
         
             
             "README.md",
         
     | 
| 
       18 
19 
     | 
    
         
             
             "README.md.erb",
         
     | 
| 
       19 
20 
     | 
    
         
             
             "Rakefile",
         
     | 
| 
      
 21 
     | 
    
         
            +
             "a.yml",
         
     | 
| 
       20 
22 
     | 
    
         
             
             "bin",
         
     | 
| 
       21 
23 
     | 
    
         
             
             "bin/ro",
         
     | 
| 
       22 
24 
     | 
    
         
             
             "lib",
         
     | 
| 
         @@ -33,6 +35,7 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       33 
35 
     | 
    
         
             
             "lib/ro/html_safe.rb",
         
     | 
| 
       34 
36 
     | 
    
         
             
             "lib/ro/klass.rb",
         
     | 
| 
       35 
37 
     | 
    
         
             
             "lib/ro/methods.rb",
         
     | 
| 
      
 38 
     | 
    
         
            +
             "lib/ro/migrator.rb",
         
     | 
| 
       36 
39 
     | 
    
         
             
             "lib/ro/model.rb",
         
     | 
| 
       37 
40 
     | 
    
         
             
             "lib/ro/node.rb",
         
     | 
| 
       38 
41 
     | 
    
         
             
             "lib/ro/pagination.rb",
         
     | 
| 
         @@ -42,6 +45,7 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       42 
45 
     | 
    
         
             
             "lib/ro/script.rb",
         
     | 
| 
       43 
46 
     | 
    
         
             
             "lib/ro/script/builder.rb",
         
     | 
| 
       44 
47 
     | 
    
         
             
             "lib/ro/script/console.rb",
         
     | 
| 
      
 48 
     | 
    
         
            +
             "lib/ro/script/migrate.rb",
         
     | 
| 
       45 
49 
     | 
    
         
             
             "lib/ro/script/server.rb",
         
     | 
| 
       46 
50 
     | 
    
         
             
             "lib/ro/slug.rb",
         
     | 
| 
       47 
51 
     | 
    
         
             
             "lib/ro/template",
         
     | 
| 
         @@ -63,8 +67,6 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       63 
67 
     | 
    
         
             
             "public/api/ro/nerd/index.json",
         
     | 
| 
       64 
68 
     | 
    
         
             
             "public/api/ro/nerd/index/index.json",
         
     | 
| 
       65 
69 
     | 
    
         
             
             "public/api/ro/pages",
         
     | 
| 
       66 
     | 
    
         
            -
             "public/api/ro/pages/about",
         
     | 
| 
       67 
     | 
    
         
            -
             "public/api/ro/pages/about/index.json",
         
     | 
| 
       68 
70 
     | 
    
         
             
             "public/api/ro/pages/contact",
         
     | 
| 
       69 
71 
     | 
    
         
             
             "public/api/ro/pages/contact/index.json",
         
     | 
| 
       70 
72 
     | 
    
         
             
             "public/api/ro/pages/cv",
         
     | 
| 
         @@ -97,6 +99,7 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       97 
99 
     | 
    
         
             
             "public/ro",
         
     | 
| 
       98 
100 
     | 
    
         
             
             "public/ro/nerd",
         
     | 
| 
       99 
101 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings",
         
     | 
| 
      
 102 
     | 
    
         
            +
             "public/ro/nerd/fastest-possible-embeddings.yml",
         
     | 
| 
       100 
103 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/assets",
         
     | 
| 
       101 
104 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/assets/giraffe.jpeg",
         
     | 
| 
       102 
105 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/assets/let-me-in.jpg",
         
     | 
| 
         @@ -104,19 +107,18 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       104 
107 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/assets/src/fastembed.js",
         
     | 
| 
       105 
108 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/assets/src/fastembed.rs",
         
     | 
| 
       106 
109 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/assets/terminal.jpg",
         
     | 
| 
       107 
     | 
    
         
            -
             "public/ro/nerd/fastest-possible-embeddings/attributes.yml",
         
     | 
| 
       108 
110 
     | 
    
         
             
             "public/ro/nerd/fastest-possible-embeddings/body.md",
         
     | 
| 
       109 
111 
     | 
    
         
             
             "public/ro/nerd/ima",
         
     | 
| 
      
 112 
     | 
    
         
            +
             "public/ro/nerd/ima.yml",
         
     | 
| 
       110 
113 
     | 
    
         
             
             "public/ro/nerd/ima/assets",
         
     | 
| 
       111 
114 
     | 
    
         
             
             "public/ro/nerd/ima/assets/og.jpeg",
         
     | 
| 
       112 
     | 
    
         
            -
             "public/ro/nerd/ima/attributes.yml",
         
     | 
| 
       113 
115 
     | 
    
         
             
             "public/ro/nerd/ima/body.md",
         
     | 
| 
       114 
116 
     | 
    
         
             
             "public/ro/nerd/index",
         
     | 
| 
      
 117 
     | 
    
         
            +
             "public/ro/nerd/index.yml",
         
     | 
| 
       115 
118 
     | 
    
         
             
             "public/ro/nerd/index/assets",
         
     | 
| 
       116 
119 
     | 
    
         
             
             "public/ro/nerd/index/assets/giraffe.jpeg",
         
     | 
| 
       117 
120 
     | 
    
         
             
             "public/ro/nerd/index/assets/let-me-in.jpg",
         
     | 
| 
       118 
121 
     | 
    
         
             
             "public/ro/nerd/index/assets/terminal.jpg",
         
     | 
| 
       119 
     | 
    
         
            -
             "public/ro/nerd/index/attributes.yml",
         
     | 
| 
       120 
122 
     | 
    
         
             
             "public/ro/nerd/index/body.md",
         
     | 
| 
       121 
123 
     | 
    
         
             
             "public/ro/pages",
         
     | 
| 
       122 
124 
     | 
    
         
             
             "public/ro/pages/about",
         
     | 
| 
         @@ -125,16 +127,17 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       125 
127 
     | 
    
         
             
             "public/ro/pages/about/assets/speak-english-pulp-fiction.gif",
         
     | 
| 
       126 
128 
     | 
    
         
             
             "public/ro/pages/about/body.md",
         
     | 
| 
       127 
129 
     | 
    
         
             
             "public/ro/pages/contact",
         
     | 
| 
      
 130 
     | 
    
         
            +
             "public/ro/pages/contact.yml",
         
     | 
| 
       128 
131 
     | 
    
         
             
             "public/ro/pages/contact/assets",
         
     | 
| 
       129 
132 
     | 
    
         
             
             "public/ro/pages/contact/assets/giraffe.jpeg",
         
     | 
| 
       130 
     | 
    
         
            -
             "public/ro/pages/contact/attributes.yml",
         
     | 
| 
       131 
133 
     | 
    
         
             
             "public/ro/pages/contact/body.md",
         
     | 
| 
       132 
134 
     | 
    
         
             
             "public/ro/pages/cv",
         
     | 
| 
      
 135 
     | 
    
         
            +
             "public/ro/pages/cv.yml",
         
     | 
| 
       133 
136 
     | 
    
         
             
             "public/ro/pages/cv/assets",
         
     | 
| 
       134 
137 
     | 
    
         
             
             "public/ro/pages/cv/assets/ara.jpg",
         
     | 
| 
       135 
     | 
    
         
            -
             "public/ro/pages/cv/attributes.yml",
         
     | 
| 
       136 
138 
     | 
    
         
             
             "public/ro/pages/cv/body.md",
         
     | 
| 
       137 
139 
     | 
    
         
             
             "public/ro/pages/disco",
         
     | 
| 
      
 140 
     | 
    
         
            +
             "public/ro/pages/disco.yml",
         
     | 
| 
       138 
141 
     | 
    
         
             
             "public/ro/pages/disco/assets",
         
     | 
| 
       139 
142 
     | 
    
         
             
             "public/ro/pages/disco/assets/disco.jpg",
         
     | 
| 
       140 
143 
     | 
    
         
             
             "public/ro/pages/disco/assets/disco.png",
         
     | 
| 
         @@ -144,7 +147,6 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       144 
147 
     | 
    
         
             
             "public/ro/pages/disco/assets/src/fortune-500.md",
         
     | 
| 
       145 
148 
     | 
    
         
             
             "public/ro/pages/disco/assets/src/greed.md",
         
     | 
| 
       146 
149 
     | 
    
         
             
             "public/ro/pages/disco/assets/src/up-at-night.md",
         
     | 
| 
       147 
     | 
    
         
            -
             "public/ro/pages/disco/attributes.yml",
         
     | 
| 
       148 
150 
     | 
    
         
             
             "public/ro/pages/disco/body.md",
         
     | 
| 
       149 
151 
     | 
    
         
             
             "public/ro/pages/disco/samples",
         
     | 
| 
       150 
152 
     | 
    
         
             
             "public/ro/pages/disco/samples/environment.md",
         
     | 
| 
         @@ -152,21 +154,22 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       152 
154 
     | 
    
         
             
             "public/ro/pages/disco/samples/greed.md",
         
     | 
| 
       153 
155 
     | 
    
         
             
             "public/ro/pages/disco/samples/up-at-night.md",
         
     | 
| 
       154 
156 
     | 
    
         
             
             "public/ro/pages/index",
         
     | 
| 
       155 
     | 
    
         
            -
             "public/ro/pages/index 
     | 
| 
      
 157 
     | 
    
         
            +
             "public/ro/pages/index.yml",
         
     | 
| 
       156 
158 
     | 
    
         
             
             "public/ro/pages/index/body.md",
         
     | 
| 
       157 
159 
     | 
    
         
             
             "public/ro/pages/jess",
         
     | 
| 
      
 160 
     | 
    
         
            +
             "public/ro/pages/jess.yml",
         
     | 
| 
       158 
161 
     | 
    
         
             
             "public/ro/pages/jess/assets",
         
     | 
| 
       159 
162 
     | 
    
         
             
             "public/ro/pages/jess/assets/og.jpg",
         
     | 
| 
       160 
163 
     | 
    
         
             
             "public/ro/pages/jess/assets/speak-english-pulp-fiction.gif",
         
     | 
| 
       161 
     | 
    
         
            -
             "public/ro/pages/jess/attributes.yml",
         
     | 
| 
       162 
164 
     | 
    
         
             
             "public/ro/pages/jess/body.md",
         
     | 
| 
       163 
165 
     | 
    
         
             
             "public/ro/pages/now",
         
     | 
| 
      
 166 
     | 
    
         
            +
             "public/ro/pages/now.yml",
         
     | 
| 
       164 
167 
     | 
    
         
             
             "public/ro/pages/now/assets",
         
     | 
| 
       165 
168 
     | 
    
         
             
             "public/ro/pages/now/assets/speak-english-pulp-fiction.gif",
         
     | 
| 
       166 
     | 
    
         
            -
             "public/ro/pages/now/attributes.yml",
         
     | 
| 
       167 
169 
     | 
    
         
             
             "public/ro/pages/now/body.md",
         
     | 
| 
       168 
170 
     | 
    
         
             
             "public/ro/posts",
         
     | 
| 
       169 
171 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave",
         
     | 
| 
      
 172 
     | 
    
         
            +
             "public/ro/posts/almost-died-in-an-ice-cave.yml",
         
     | 
| 
       170 
173 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/assets",
         
     | 
| 
       171 
174 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/assets/image1.png",
         
     | 
| 
       172 
175 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/assets/image10.png",
         
     | 
| 
         @@ -187,9 +190,9 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       187 
190 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/assets/levi-rawr.png",
         
     | 
| 
       188 
191 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/assets/og.jpg",
         
     | 
| 
       189 
192 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/assets/purple-heart.jpg",
         
     | 
| 
       190 
     | 
    
         
            -
             "public/ro/posts/almost-died-in-an-ice-cave/attributes.yml",
         
     | 
| 
       191 
193 
     | 
    
         
             
             "public/ro/posts/almost-died-in-an-ice-cave/body.md",
         
     | 
| 
       192 
194 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism",
         
     | 
| 
      
 195 
     | 
    
         
            +
             "public/ro/posts/facebook-and-global-extremism.yml",
         
     | 
| 
       193 
196 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/assets",
         
     | 
| 
       194 
197 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/assets/background.html",
         
     | 
| 
       195 
198 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/assets/background.md",
         
     | 
| 
         @@ -197,32 +200,258 @@ Gem::Specification::new do |spec| 
     | 
|
| 
       197 
200 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/assets/prompt.txt",
         
     | 
| 
       198 
201 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/assets/results.md",
         
     | 
| 
       199 
202 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/assets/survey.txt",
         
     | 
| 
       200 
     | 
    
         
            -
             "public/ro/posts/facebook-and-global-extremism/attributes.yml",
         
     | 
| 
       201 
203 
     | 
    
         
             
             "public/ro/posts/facebook-and-global-extremism/body.md",
         
     | 
| 
       202 
204 
     | 
    
         
             
             "public/ro/posts/lemmings-considered-harmful",
         
     | 
| 
      
 205 
     | 
    
         
            +
             "public/ro/posts/lemmings-considered-harmful.yml",
         
     | 
| 
       203 
206 
     | 
    
         
             
             "public/ro/posts/lemmings-considered-harmful/assets",
         
     | 
| 
       204 
207 
     | 
    
         
             
             "public/ro/posts/lemmings-considered-harmful/assets/lemming.jpeg",
         
     | 
| 
       205 
     | 
    
         
            -
             "public/ro/posts/lemmings-considered-harmful/attributes.yml",
         
     | 
| 
       206 
208 
     | 
    
         
             
             "public/ro/posts/lemmings-considered-harmful/body.md",
         
     | 
| 
       207 
209 
     | 
    
         
             
             "public/ro/posts/lost-in-the-desert",
         
     | 
| 
      
 210 
     | 
    
         
            +
             "public/ro/posts/lost-in-the-desert.yml",
         
     | 
| 
       208 
211 
     | 
    
         
             
             "public/ro/posts/lost-in-the-desert/assets",
         
     | 
| 
       209 
212 
     | 
    
         
             
             "public/ro/posts/lost-in-the-desert/assets/og.jpg",
         
     | 
| 
       210 
     | 
    
         
            -
             "public/ro/posts/lost-in-the-desert/attributes.yml",
         
     | 
| 
       211 
213 
     | 
    
         
             
             "public/ro/posts/lost-in-the-desert/body.md",
         
     | 
| 
       212 
214 
     | 
    
         
             
             "public/ro/posts/mission",
         
     | 
| 
      
 215 
     | 
    
         
            +
             "public/ro/posts/mission.yml",
         
     | 
| 
       213 
216 
     | 
    
         
             
             "public/ro/posts/mission/assets",
         
     | 
| 
       214 
217 
     | 
    
         
             
             "public/ro/posts/mission/assets/og.jpg",
         
     | 
| 
       215 
     | 
    
         
            -
             "public/ro/posts/mission/attributes.yml",
         
     | 
| 
       216 
218 
     | 
    
         
             
             "public/ro/posts/mission/body.md",
         
     | 
| 
       217 
219 
     | 
    
         
             
             "public/ro/posts/return-your-laptop",
         
     | 
| 
      
 220 
     | 
    
         
            +
             "public/ro/posts/return-your-laptop.yml",
         
     | 
| 
       218 
221 
     | 
    
         
             
             "public/ro/posts/return-your-laptop/assets",
         
     | 
| 
       219 
222 
     | 
    
         
             
             "public/ro/posts/return-your-laptop/assets/og.jpg",
         
     | 
| 
       220 
223 
     | 
    
         
             
             "public/ro/posts/return-your-laptop/assets/return-your-laptop.png",
         
     | 
| 
       221 
     | 
    
         
            -
             "public/ro/posts/return-your-laptop/attributes.yml",
         
     | 
| 
       222 
224 
     | 
    
         
             
             "public/ro/posts/return-your-laptop/body.md",
         
     | 
| 
       223 
225 
     | 
    
         
             
             "ro.gemspec",
         
     | 
| 
       224 
226 
     | 
    
         
             
             "scripts",
         
     | 
| 
       225 
227 
     | 
    
         
             
             "scripts/speedtest.rb",
         
     | 
| 
      
 228 
     | 
    
         
            +
             "specs",
         
     | 
| 
      
 229 
     | 
    
         
            +
             "specs/001-simplify-asset-structure",
         
     | 
| 
      
 230 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/IMPLEMENTATION_SUMMARY.md",
         
     | 
| 
      
 231 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/checklists",
         
     | 
| 
      
 232 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/checklists/requirements.md",
         
     | 
| 
      
 233 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/contracts",
         
     | 
| 
      
 234 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/contracts/collection_api.md",
         
     | 
| 
      
 235 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/contracts/migrator_api.md",
         
     | 
| 
      
 236 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/contracts/node_api.md",
         
     | 
| 
      
 237 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/data-model.md",
         
     | 
| 
      
 238 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/plan.md",
         
     | 
| 
      
 239 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/quickstart.md",
         
     | 
| 
      
 240 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/research.md",
         
     | 
| 
      
 241 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/spec.md",
         
     | 
| 
      
 242 
     | 
    
         
            +
             "specs/001-simplify-asset-structure/tasks.md",
         
     | 
| 
      
 243 
     | 
    
         
            +
             "test",
         
     | 
| 
      
 244 
     | 
    
         
            +
             "test/fixtures",
         
     | 
| 
      
 245 
     | 
    
         
            +
             "test/fixtures/new_structure",
         
     | 
| 
      
 246 
     | 
    
         
            +
             "test/fixtures/new_structure/mixed",
         
     | 
| 
      
 247 
     | 
    
         
            +
             "test/fixtures/new_structure/mixed/test-json.json",
         
     | 
| 
      
 248 
     | 
    
         
            +
             "test/fixtures/new_structure/mixed/test-yaml.yml",
         
     | 
| 
      
 249 
     | 
    
         
            +
             "test/fixtures/new_structure/posts",
         
     | 
| 
      
 250 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/metadata-only.yml",
         
     | 
| 
      
 251 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/nested-test",
         
     | 
| 
      
 252 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/nested-test.yml",
         
     | 
| 
      
 253 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/nested-test/assets",
         
     | 
| 
      
 254 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/nested-test/assets/subdirectory",
         
     | 
| 
      
 255 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/nested-test/assets/subdirectory/image.png",
         
     | 
| 
      
 256 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/sample-post",
         
     | 
| 
      
 257 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/sample-post.yml",
         
     | 
| 
      
 258 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/sample-post/assets",
         
     | 
| 
      
 259 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/sample-post/assets/body.md",
         
     | 
| 
      
 260 
     | 
    
         
            +
             "test/fixtures/new_structure/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 261 
     | 
    
         
            +
             "test/fixtures/old_structure",
         
     | 
| 
      
 262 
     | 
    
         
            +
             "test/fixtures/old_structure/posts",
         
     | 
| 
      
 263 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/assets-only",
         
     | 
| 
      
 264 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/assets-only/assets",
         
     | 
| 
      
 265 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 266 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/sample-post",
         
     | 
| 
      
 267 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/sample-post/assets",
         
     | 
| 
      
 268 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/sample-post/assets/body.md",
         
     | 
| 
      
 269 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 270 
     | 
    
         
            +
             "test/fixtures/old_structure/posts/sample-post/attributes.yml",
         
     | 
| 
      
 271 
     | 
    
         
            +
             "test/integration",
         
     | 
| 
      
 272 
     | 
    
         
            +
             "test/integration/ro_integration_test.rb",
         
     | 
| 
      
 273 
     | 
    
         
            +
             "test/test_helper.rb",
         
     | 
| 
      
 274 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513",
         
     | 
| 
      
 275 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513",
         
     | 
| 
      
 276 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts",
         
     | 
| 
      
 277 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post",
         
     | 
| 
      
 278 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/assets",
         
     | 
| 
      
 279 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 280 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/attributes.yml",
         
     | 
| 
      
 281 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/body.md",
         
     | 
| 
      
 282 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/posts",
         
     | 
| 
      
 283 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post",
         
     | 
| 
      
 284 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/assets",
         
     | 
| 
      
 285 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 286 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/attributes.yml",
         
     | 
| 
      
 287 
     | 
    
         
            +
             "test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/body.md",
         
     | 
| 
      
 288 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556",
         
     | 
| 
      
 289 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556",
         
     | 
| 
      
 290 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts",
         
     | 
| 
      
 291 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post",
         
     | 
| 
      
 292 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/assets",
         
     | 
| 
      
 293 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 294 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/attributes.yml",
         
     | 
| 
      
 295 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/body.md",
         
     | 
| 
      
 296 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/posts",
         
     | 
| 
      
 297 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post",
         
     | 
| 
      
 298 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/assets",
         
     | 
| 
      
 299 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 300 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/attributes.yml",
         
     | 
| 
      
 301 
     | 
    
         
            +
             "test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/body.md",
         
     | 
| 
      
 302 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048",
         
     | 
| 
      
 303 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248",
         
     | 
| 
      
 304 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts",
         
     | 
| 
      
 305 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post",
         
     | 
| 
      
 306 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/assets",
         
     | 
| 
      
 307 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 308 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/attributes.yml",
         
     | 
| 
      
 309 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/body.md",
         
     | 
| 
      
 310 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/posts",
         
     | 
| 
      
 311 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post",
         
     | 
| 
      
 312 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/assets",
         
     | 
| 
      
 313 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 314 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/attributes.yml",
         
     | 
| 
      
 315 
     | 
    
         
            +
             "test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/body.md",
         
     | 
| 
      
 316 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003",
         
     | 
| 
      
 317 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803",
         
     | 
| 
      
 318 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts",
         
     | 
| 
      
 319 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post",
         
     | 
| 
      
 320 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post.yml",
         
     | 
| 
      
 321 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post/body.md",
         
     | 
| 
      
 322 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post/image.jpg",
         
     | 
| 
      
 323 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/posts",
         
     | 
| 
      
 324 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post",
         
     | 
| 
      
 325 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post.yml",
         
     | 
| 
      
 326 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post/body.md",
         
     | 
| 
      
 327 
     | 
    
         
            +
             "test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post/image.jpg",
         
     | 
| 
      
 328 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109",
         
     | 
| 
      
 329 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869",
         
     | 
| 
      
 330 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts",
         
     | 
| 
      
 331 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post",
         
     | 
| 
      
 332 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets",
         
     | 
| 
      
 333 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets/body.md",
         
     | 
| 
      
 334 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 335 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/attributes.yml",
         
     | 
| 
      
 336 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/posts",
         
     | 
| 
      
 337 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post",
         
     | 
| 
      
 338 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets",
         
     | 
| 
      
 339 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets/body.md",
         
     | 
| 
      
 340 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 341 
     | 
    
         
            +
             "test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/attributes.yml",
         
     | 
| 
      
 342 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200",
         
     | 
| 
      
 343 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920",
         
     | 
| 
      
 344 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts",
         
     | 
| 
      
 345 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post",
         
     | 
| 
      
 346 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets",
         
     | 
| 
      
 347 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets/body.md",
         
     | 
| 
      
 348 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 349 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/attributes.yml",
         
     | 
| 
      
 350 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/posts",
         
     | 
| 
      
 351 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post",
         
     | 
| 
      
 352 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets",
         
     | 
| 
      
 353 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets/body.md",
         
     | 
| 
      
 354 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 355 
     | 
    
         
            +
             "test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/attributes.yml",
         
     | 
| 
      
 356 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848",
         
     | 
| 
      
 357 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728",
         
     | 
| 
      
 358 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts",
         
     | 
| 
      
 359 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/assets-only",
         
     | 
| 
      
 360 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/assets-only/assets",
         
     | 
| 
      
 361 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 362 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post",
         
     | 
| 
      
 363 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets",
         
     | 
| 
      
 364 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets/body.md",
         
     | 
| 
      
 365 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 366 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/attributes.yml",
         
     | 
| 
      
 367 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts",
         
     | 
| 
      
 368 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/assets-only",
         
     | 
| 
      
 369 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/assets-only/assets",
         
     | 
| 
      
 370 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 371 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post",
         
     | 
| 
      
 372 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets",
         
     | 
| 
      
 373 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets/body.md",
         
     | 
| 
      
 374 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 375 
     | 
    
         
            +
             "test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/attributes.yml",
         
     | 
| 
      
 376 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233",
         
     | 
| 
      
 377 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153",
         
     | 
| 
      
 378 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts",
         
     | 
| 
      
 379 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/assets-only",
         
     | 
| 
      
 380 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/assets-only/assets",
         
     | 
| 
      
 381 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 382 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post",
         
     | 
| 
      
 383 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets",
         
     | 
| 
      
 384 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets/body.md",
         
     | 
| 
      
 385 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 386 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/attributes.yml",
         
     | 
| 
      
 387 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts",
         
     | 
| 
      
 388 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/assets-only",
         
     | 
| 
      
 389 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/assets-only/assets",
         
     | 
| 
      
 390 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 391 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post",
         
     | 
| 
      
 392 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets",
         
     | 
| 
      
 393 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets/body.md",
         
     | 
| 
      
 394 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 395 
     | 
    
         
            +
             "test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/attributes.yml",
         
     | 
| 
      
 396 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539",
         
     | 
| 
      
 397 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939",
         
     | 
| 
      
 398 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts",
         
     | 
| 
      
 399 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/assets-only",
         
     | 
| 
      
 400 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/assets-only/assets",
         
     | 
| 
      
 401 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 402 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post",
         
     | 
| 
      
 403 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets",
         
     | 
| 
      
 404 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets/body.md",
         
     | 
| 
      
 405 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 406 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/attributes.yml",
         
     | 
| 
      
 407 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts",
         
     | 
| 
      
 408 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/assets-only",
         
     | 
| 
      
 409 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/assets-only/assets",
         
     | 
| 
      
 410 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 411 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post",
         
     | 
| 
      
 412 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets",
         
     | 
| 
      
 413 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets/body.md",
         
     | 
| 
      
 414 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 415 
     | 
    
         
            +
             "test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/attributes.yml",
         
     | 
| 
      
 416 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728",
         
     | 
| 
      
 417 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048",
         
     | 
| 
      
 418 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts",
         
     | 
| 
      
 419 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/assets-only",
         
     | 
| 
      
 420 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/assets-only/assets",
         
     | 
| 
      
 421 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 422 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post",
         
     | 
| 
      
 423 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets",
         
     | 
| 
      
 424 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets/body.md",
         
     | 
| 
      
 425 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 426 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/attributes.yml",
         
     | 
| 
      
 427 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts",
         
     | 
| 
      
 428 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/assets-only",
         
     | 
| 
      
 429 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/assets-only/assets",
         
     | 
| 
      
 430 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/assets-only/assets/test.txt",
         
     | 
| 
      
 431 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post",
         
     | 
| 
      
 432 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets",
         
     | 
| 
      
 433 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets/body.md",
         
     | 
| 
      
 434 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets/image.jpg",
         
     | 
| 
      
 435 
     | 
    
         
            +
             "test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/attributes.yml",
         
     | 
| 
      
 436 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452",
         
     | 
| 
      
 437 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/mixed",
         
     | 
| 
      
 438 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/mixed/test-json.json",
         
     | 
| 
      
 439 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/mixed/test-yaml.yml",
         
     | 
| 
      
 440 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts",
         
     | 
| 
      
 441 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/metadata-only.yml",
         
     | 
| 
      
 442 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/nested-test",
         
     | 
| 
      
 443 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/nested-test.yml",
         
     | 
| 
      
 444 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/nested-test/subdirectory",
         
     | 
| 
      
 445 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/nested-test/subdirectory/image.png",
         
     | 
| 
      
 446 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/sample-post",
         
     | 
| 
      
 447 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/sample-post.yml",
         
     | 
| 
      
 448 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/sample-post/body.md",
         
     | 
| 
      
 449 
     | 
    
         
            +
             "test/tmp/new_structure_test_1760746452/posts/sample-post/image.jpg",
         
     | 
| 
      
 450 
     | 
    
         
            +
             "test/unit",
         
     | 
| 
      
 451 
     | 
    
         
            +
             "test/unit/asset_test.rb",
         
     | 
| 
      
 452 
     | 
    
         
            +
             "test/unit/collection_test.rb",
         
     | 
| 
      
 453 
     | 
    
         
            +
             "test/unit/migrator_test.rb",
         
     | 
| 
      
 454 
     | 
    
         
            +
             "test/unit/node_test.rb",
         
     | 
| 
       226 
455 
     | 
    
         
             
             "tmp/gem-details.oe"]
         
     | 
| 
       227 
456 
     | 
    
         | 
| 
       228 
457 
     | 
    
         
             
              spec.executables = ["ro"]
         
     |