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
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ro
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ara T. Howard
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: map
|
|
@@ -161,9 +161,11 @@ files:
|
|
|
161
161
|
- Gemfile
|
|
162
162
|
- Gemfile.lock
|
|
163
163
|
- LICENSE
|
|
164
|
+
- MIGRATION.md
|
|
164
165
|
- README.md
|
|
165
166
|
- README.md.erb
|
|
166
167
|
- Rakefile
|
|
168
|
+
- a.yml
|
|
167
169
|
- bin/ro
|
|
168
170
|
- lib/ro.rb
|
|
169
171
|
- lib/ro/_lib.rb
|
|
@@ -176,6 +178,7 @@ files:
|
|
|
176
178
|
- lib/ro/html_safe.rb
|
|
177
179
|
- lib/ro/klass.rb
|
|
178
180
|
- lib/ro/methods.rb
|
|
181
|
+
- lib/ro/migrator.rb
|
|
179
182
|
- lib/ro/model.rb
|
|
180
183
|
- lib/ro/node.rb
|
|
181
184
|
- lib/ro/pagination.rb
|
|
@@ -184,6 +187,7 @@ files:
|
|
|
184
187
|
- lib/ro/script.rb
|
|
185
188
|
- lib/ro/script/builder.rb
|
|
186
189
|
- lib/ro/script/console.rb
|
|
190
|
+
- lib/ro/script/migrate.rb
|
|
187
191
|
- lib/ro/script/server.rb
|
|
188
192
|
- lib/ro/slug.rb
|
|
189
193
|
- lib/ro/template.rb
|
|
@@ -196,7 +200,6 @@ files:
|
|
|
196
200
|
- public/api/ro/nerd/index-1.json
|
|
197
201
|
- public/api/ro/nerd/index.json
|
|
198
202
|
- public/api/ro/nerd/index/index.json
|
|
199
|
-
- public/api/ro/pages/about/index.json
|
|
200
203
|
- public/api/ro/pages/contact/index.json
|
|
201
204
|
- public/api/ro/pages/cv/index.json
|
|
202
205
|
- public/api/ro/pages/disco/index.json
|
|
@@ -213,30 +216,31 @@ files:
|
|
|
213
216
|
- public/api/ro/posts/lost-in-the-desert/index.json
|
|
214
217
|
- public/api/ro/posts/mission/index.json
|
|
215
218
|
- public/api/ro/posts/return-your-laptop/index.json
|
|
219
|
+
- public/ro/nerd/fastest-possible-embeddings.yml
|
|
216
220
|
- public/ro/nerd/fastest-possible-embeddings/assets/giraffe.jpeg
|
|
217
221
|
- public/ro/nerd/fastest-possible-embeddings/assets/let-me-in.jpg
|
|
218
222
|
- public/ro/nerd/fastest-possible-embeddings/assets/src/fastembed.js
|
|
219
223
|
- public/ro/nerd/fastest-possible-embeddings/assets/src/fastembed.rs
|
|
220
224
|
- public/ro/nerd/fastest-possible-embeddings/assets/terminal.jpg
|
|
221
|
-
- public/ro/nerd/fastest-possible-embeddings/attributes.yml
|
|
222
225
|
- public/ro/nerd/fastest-possible-embeddings/body.md
|
|
226
|
+
- public/ro/nerd/ima.yml
|
|
223
227
|
- public/ro/nerd/ima/assets/og.jpeg
|
|
224
|
-
- public/ro/nerd/ima/attributes.yml
|
|
225
228
|
- public/ro/nerd/ima/body.md
|
|
229
|
+
- public/ro/nerd/index.yml
|
|
226
230
|
- public/ro/nerd/index/assets/giraffe.jpeg
|
|
227
231
|
- public/ro/nerd/index/assets/let-me-in.jpg
|
|
228
232
|
- public/ro/nerd/index/assets/terminal.jpg
|
|
229
|
-
- public/ro/nerd/index/attributes.yml
|
|
230
233
|
- public/ro/nerd/index/body.md
|
|
231
234
|
- public/ro/pages/about/assets/og.jpeg
|
|
232
235
|
- public/ro/pages/about/assets/speak-english-pulp-fiction.gif
|
|
233
236
|
- public/ro/pages/about/body.md
|
|
237
|
+
- public/ro/pages/contact.yml
|
|
234
238
|
- public/ro/pages/contact/assets/giraffe.jpeg
|
|
235
|
-
- public/ro/pages/contact/attributes.yml
|
|
236
239
|
- public/ro/pages/contact/body.md
|
|
240
|
+
- public/ro/pages/cv.yml
|
|
237
241
|
- public/ro/pages/cv/assets/ara.jpg
|
|
238
|
-
- public/ro/pages/cv/attributes.yml
|
|
239
242
|
- public/ro/pages/cv/body.md
|
|
243
|
+
- public/ro/pages/disco.yml
|
|
240
244
|
- public/ro/pages/disco/assets/disco.jpg
|
|
241
245
|
- public/ro/pages/disco/assets/disco.png
|
|
242
246
|
- public/ro/pages/disco/assets/speak-english-pulp-fiction.gif
|
|
@@ -244,21 +248,21 @@ files:
|
|
|
244
248
|
- public/ro/pages/disco/assets/src/fortune-500.md
|
|
245
249
|
- public/ro/pages/disco/assets/src/greed.md
|
|
246
250
|
- public/ro/pages/disco/assets/src/up-at-night.md
|
|
247
|
-
- public/ro/pages/disco/attributes.yml
|
|
248
251
|
- public/ro/pages/disco/body.md
|
|
249
252
|
- public/ro/pages/disco/samples/environment.md
|
|
250
253
|
- public/ro/pages/disco/samples/fortune-500.md
|
|
251
254
|
- public/ro/pages/disco/samples/greed.md
|
|
252
255
|
- public/ro/pages/disco/samples/up-at-night.md
|
|
253
|
-
- public/ro/pages/index
|
|
256
|
+
- public/ro/pages/index.yml
|
|
254
257
|
- public/ro/pages/index/body.md
|
|
258
|
+
- public/ro/pages/jess.yml
|
|
255
259
|
- public/ro/pages/jess/assets/og.jpg
|
|
256
260
|
- public/ro/pages/jess/assets/speak-english-pulp-fiction.gif
|
|
257
|
-
- public/ro/pages/jess/attributes.yml
|
|
258
261
|
- public/ro/pages/jess/body.md
|
|
262
|
+
- public/ro/pages/now.yml
|
|
259
263
|
- public/ro/pages/now/assets/speak-english-pulp-fiction.gif
|
|
260
|
-
- public/ro/pages/now/attributes.yml
|
|
261
264
|
- public/ro/pages/now/body.md
|
|
265
|
+
- public/ro/posts/almost-died-in-an-ice-cave.yml
|
|
262
266
|
- public/ro/posts/almost-died-in-an-ice-cave/assets/image1.png
|
|
263
267
|
- public/ro/posts/almost-died-in-an-ice-cave/assets/image10.png
|
|
264
268
|
- public/ro/posts/almost-died-in-an-ice-cave/assets/image11.png
|
|
@@ -278,31 +282,135 @@ files:
|
|
|
278
282
|
- public/ro/posts/almost-died-in-an-ice-cave/assets/levi-rawr.png
|
|
279
283
|
- public/ro/posts/almost-died-in-an-ice-cave/assets/og.jpg
|
|
280
284
|
- public/ro/posts/almost-died-in-an-ice-cave/assets/purple-heart.jpg
|
|
281
|
-
- public/ro/posts/almost-died-in-an-ice-cave/attributes.yml
|
|
282
285
|
- public/ro/posts/almost-died-in-an-ice-cave/body.md
|
|
286
|
+
- public/ro/posts/facebook-and-global-extremism.yml
|
|
283
287
|
- public/ro/posts/facebook-and-global-extremism/assets/background.html
|
|
284
288
|
- public/ro/posts/facebook-and-global-extremism/assets/background.md
|
|
285
289
|
- public/ro/posts/facebook-and-global-extremism/assets/og.jpg
|
|
286
290
|
- public/ro/posts/facebook-and-global-extremism/assets/prompt.txt
|
|
287
291
|
- public/ro/posts/facebook-and-global-extremism/assets/results.md
|
|
288
292
|
- public/ro/posts/facebook-and-global-extremism/assets/survey.txt
|
|
289
|
-
- public/ro/posts/facebook-and-global-extremism/attributes.yml
|
|
290
293
|
- public/ro/posts/facebook-and-global-extremism/body.md
|
|
294
|
+
- public/ro/posts/lemmings-considered-harmful.yml
|
|
291
295
|
- public/ro/posts/lemmings-considered-harmful/assets/lemming.jpeg
|
|
292
|
-
- public/ro/posts/lemmings-considered-harmful/attributes.yml
|
|
293
296
|
- public/ro/posts/lemmings-considered-harmful/body.md
|
|
297
|
+
- public/ro/posts/lost-in-the-desert.yml
|
|
294
298
|
- public/ro/posts/lost-in-the-desert/assets/og.jpg
|
|
295
|
-
- public/ro/posts/lost-in-the-desert/attributes.yml
|
|
296
299
|
- public/ro/posts/lost-in-the-desert/body.md
|
|
300
|
+
- public/ro/posts/mission.yml
|
|
297
301
|
- public/ro/posts/mission/assets/og.jpg
|
|
298
|
-
- public/ro/posts/mission/attributes.yml
|
|
299
302
|
- public/ro/posts/mission/body.md
|
|
303
|
+
- public/ro/posts/return-your-laptop.yml
|
|
300
304
|
- public/ro/posts/return-your-laptop/assets/og.jpg
|
|
301
305
|
- public/ro/posts/return-your-laptop/assets/return-your-laptop.png
|
|
302
|
-
- public/ro/posts/return-your-laptop/attributes.yml
|
|
303
306
|
- public/ro/posts/return-your-laptop/body.md
|
|
304
307
|
- ro.gemspec
|
|
305
308
|
- scripts/speedtest.rb
|
|
309
|
+
- specs/001-simplify-asset-structure/IMPLEMENTATION_SUMMARY.md
|
|
310
|
+
- specs/001-simplify-asset-structure/checklists/requirements.md
|
|
311
|
+
- specs/001-simplify-asset-structure/contracts/collection_api.md
|
|
312
|
+
- specs/001-simplify-asset-structure/contracts/migrator_api.md
|
|
313
|
+
- specs/001-simplify-asset-structure/contracts/node_api.md
|
|
314
|
+
- specs/001-simplify-asset-structure/data-model.md
|
|
315
|
+
- specs/001-simplify-asset-structure/plan.md
|
|
316
|
+
- specs/001-simplify-asset-structure/quickstart.md
|
|
317
|
+
- specs/001-simplify-asset-structure/research.md
|
|
318
|
+
- specs/001-simplify-asset-structure/spec.md
|
|
319
|
+
- specs/001-simplify-asset-structure/tasks.md
|
|
320
|
+
- test/fixtures/new_structure/mixed/test-json.json
|
|
321
|
+
- test/fixtures/new_structure/mixed/test-yaml.yml
|
|
322
|
+
- test/fixtures/new_structure/posts/metadata-only.yml
|
|
323
|
+
- test/fixtures/new_structure/posts/nested-test.yml
|
|
324
|
+
- test/fixtures/new_structure/posts/nested-test/assets/subdirectory/image.png
|
|
325
|
+
- test/fixtures/new_structure/posts/sample-post.yml
|
|
326
|
+
- test/fixtures/new_structure/posts/sample-post/assets/body.md
|
|
327
|
+
- test/fixtures/new_structure/posts/sample-post/assets/image.jpg
|
|
328
|
+
- test/fixtures/old_structure/posts/assets-only/assets/test.txt
|
|
329
|
+
- test/fixtures/old_structure/posts/sample-post/assets/body.md
|
|
330
|
+
- test/fixtures/old_structure/posts/sample-post/assets/image.jpg
|
|
331
|
+
- test/fixtures/old_structure/posts/sample-post/attributes.yml
|
|
332
|
+
- test/integration/ro_integration_test.rb
|
|
333
|
+
- test/test_helper.rb
|
|
334
|
+
- test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/assets/image.jpg
|
|
335
|
+
- test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/attributes.yml
|
|
336
|
+
- test/tmp/migration_test_1760746513.backup.20251018001513/migration_test_1760746513/posts/sample-post/body.md
|
|
337
|
+
- test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/assets/image.jpg
|
|
338
|
+
- test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/attributes.yml
|
|
339
|
+
- test/tmp/migration_test_1760746513.backup.20251018001513/posts/sample-post/body.md
|
|
340
|
+
- test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/assets/image.jpg
|
|
341
|
+
- test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/attributes.yml
|
|
342
|
+
- test/tmp/migration_test_1760746556.backup.20251018001556/migration_test_1760746556/posts/sample-post/body.md
|
|
343
|
+
- test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/assets/image.jpg
|
|
344
|
+
- test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/attributes.yml
|
|
345
|
+
- test/tmp/migration_test_1760746556.backup.20251018001556/posts/sample-post/body.md
|
|
346
|
+
- test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/assets/image.jpg
|
|
347
|
+
- test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/attributes.yml
|
|
348
|
+
- test/tmp/migration_test_1760755248.backup.20251018024048/migration_test_1760755248/posts/sample-post/body.md
|
|
349
|
+
- test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/assets/image.jpg
|
|
350
|
+
- test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/attributes.yml
|
|
351
|
+
- test/tmp/migration_test_1760755248.backup.20251018024048/posts/sample-post/body.md
|
|
352
|
+
- test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post.yml
|
|
353
|
+
- test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post/body.md
|
|
354
|
+
- test/tmp/migration_test_1760758803.backup.20251018034003/migration_test_1760758803/posts/sample-post/image.jpg
|
|
355
|
+
- test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post.yml
|
|
356
|
+
- test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post/body.md
|
|
357
|
+
- test/tmp/migration_test_1760758803.backup.20251018034003/posts/sample-post/image.jpg
|
|
358
|
+
- test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets/body.md
|
|
359
|
+
- test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/assets/image.jpg
|
|
360
|
+
- test/tmp/migration_test_1760758869.backup.20251018034109/migration_test_1760758869/posts/sample-post/attributes.yml
|
|
361
|
+
- test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets/body.md
|
|
362
|
+
- test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/assets/image.jpg
|
|
363
|
+
- test/tmp/migration_test_1760758869.backup.20251018034109/posts/sample-post/attributes.yml
|
|
364
|
+
- test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets/body.md
|
|
365
|
+
- test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/assets/image.jpg
|
|
366
|
+
- test/tmp/migration_test_1760758920.backup.20251018034200/migration_test_1760758920/posts/sample-post/attributes.yml
|
|
367
|
+
- test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets/body.md
|
|
368
|
+
- test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/assets/image.jpg
|
|
369
|
+
- test/tmp/migration_test_1760758920.backup.20251018034200/posts/sample-post/attributes.yml
|
|
370
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/assets-only/assets/test.txt
|
|
371
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets/body.md
|
|
372
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/assets/image.jpg
|
|
373
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/migration_test_1760824728/posts/sample-post/attributes.yml
|
|
374
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/posts/assets-only/assets/test.txt
|
|
375
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets/body.md
|
|
376
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/assets/image.jpg
|
|
377
|
+
- test/tmp/migration_test_1760824728.backup.20251018215848/posts/sample-post/attributes.yml
|
|
378
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/assets-only/assets/test.txt
|
|
379
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets/body.md
|
|
380
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/assets/image.jpg
|
|
381
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/migration_test_1760844153/posts/sample-post/attributes.yml
|
|
382
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/posts/assets-only/assets/test.txt
|
|
383
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets/body.md
|
|
384
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/assets/image.jpg
|
|
385
|
+
- test/tmp/migration_test_1760844153.backup.20251019032233/posts/sample-post/attributes.yml
|
|
386
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/assets-only/assets/test.txt
|
|
387
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets/body.md
|
|
388
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/assets/image.jpg
|
|
389
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/migration_test_1760940939/posts/sample-post/attributes.yml
|
|
390
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/posts/assets-only/assets/test.txt
|
|
391
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets/body.md
|
|
392
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/assets/image.jpg
|
|
393
|
+
- test/tmp/migration_test_1760940939.backup.20251020061539/posts/sample-post/attributes.yml
|
|
394
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/assets-only/assets/test.txt
|
|
395
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets/body.md
|
|
396
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/assets/image.jpg
|
|
397
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/migration_test_1760941048/posts/sample-post/attributes.yml
|
|
398
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/posts/assets-only/assets/test.txt
|
|
399
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets/body.md
|
|
400
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/assets/image.jpg
|
|
401
|
+
- test/tmp/migration_test_1760941048.backup.20251020061728/posts/sample-post/attributes.yml
|
|
402
|
+
- test/tmp/new_structure_test_1760746452/mixed/test-json.json
|
|
403
|
+
- test/tmp/new_structure_test_1760746452/mixed/test-yaml.yml
|
|
404
|
+
- test/tmp/new_structure_test_1760746452/posts/metadata-only.yml
|
|
405
|
+
- test/tmp/new_structure_test_1760746452/posts/nested-test.yml
|
|
406
|
+
- test/tmp/new_structure_test_1760746452/posts/nested-test/subdirectory/image.png
|
|
407
|
+
- test/tmp/new_structure_test_1760746452/posts/sample-post.yml
|
|
408
|
+
- test/tmp/new_structure_test_1760746452/posts/sample-post/body.md
|
|
409
|
+
- test/tmp/new_structure_test_1760746452/posts/sample-post/image.jpg
|
|
410
|
+
- test/unit/asset_test.rb
|
|
411
|
+
- test/unit/collection_test.rb
|
|
412
|
+
- test/unit/migrator_test.rb
|
|
413
|
+
- test/unit/node_test.rb
|
|
306
414
|
- tmp/gem-details.oe
|
|
307
415
|
homepage: https://github.com/ahoward/ro
|
|
308
416
|
licenses:
|
|
@@ -323,7 +431,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
323
431
|
- !ruby/object:Gem::Version
|
|
324
432
|
version: '0'
|
|
325
433
|
requirements: []
|
|
326
|
-
rubygems_version: 3.5.
|
|
434
|
+
rubygems_version: 3.5.22
|
|
327
435
|
signing_key:
|
|
328
436
|
specification_version: 4
|
|
329
437
|
summary: all your content in github, as god intended
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"data": {
|
|
3
|
-
"pages/about": {
|
|
4
|
-
"og": {
|
|
5
|
-
"title": "ara.t.howard",
|
|
6
|
-
"description": "my insides are made out of outsides. i bite.",
|
|
7
|
-
"image": {
|
|
8
|
-
"url": "/ro/pages/about/assets/og.jpeg"
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
"body": "<div class=\"ro markdown\">\n <p>this is the part i hate. writing about myself.</p>\n\n<p>i’ll start at the beginning:</p>\n\n<ul>\n <li>grew up in <a href=\"https://photos.app.goo.gl/3aa3Fkwe9EyQg7kf6\">alaska</a>, 4th * generational irish people, been <em>here and there</em> the past few years.</li>\n <li>roamed the planet racing bikes and skis. this before phones, gps, or * digital cameras.</li>\n <li>raised a family in boulder, colorado.</li>\n <li>researched <a href=\"https://independent.academia.edu/arahoward\">life on earth from space</a> for about a decade.</li>\n <li>wrote a <a href=\"https://github.com/ahoward\">ton of software</a>, some that <a href=\"https://www.linuxjournal.com/article/7922\">i am even proud of</a>.</li>\n <li>founded, built, and ran <a href=\"/dojo4\">dojo4</a> for almost exactly a decade.</li>\n <li>ranted about the dangerous of big tech, and responbility of software developers, in <a href=\"https://www.youtube.com/watch?v=sKNENzPpSrA\">kyiv 2015</a>.</li>\n <li>mentored dozens of techstars startups, worked with and for over a hundred.</li>\n <li>2020 // COVID // massive life changes. collapse. like everyone else.</li>\n <li>subsequently, a ton of * <a href=\"https://photos.app.goo.gl/ZLLWKpux5jns3JUH9\">mountains</a>.</li>\n <li>somehow managed to get lost in the <a href=\"https://photos.app.goo.gl/rnSLBr9MoWMHv1zx6\">southwest for the 42’nd time in my life</a>.</li>\n <li>started <a href=\"https://photos.app.goo.gl/wMDwwuFamRWWgZiu6\">riding my bike to * alaska</a>.</li>\n <li>met a girl in <a href=\"https://photos.app.goo.gl/MpSigk5BJwqeouiUA\">LA</a>.</li>\n <li><a href=\"/io/almost-died-in-an-ice-cave\">almost died in an ice cave</a>.</li>\n <li>been cranking on a <a href=\"/now\">new stuff</a>.</li>\n <li>and <a href=\"https://photos.app.goo.gl/ikwjrYWBXEvFbwbx7\">riding bikes with a broken leg</a>.</li>\n</ul>\n\n<p>this is <em>absolutely</em> and _always a work in progress…</p>\n\n<p>so check back soon or just <a href=\"contact\">contact</a> me if you are a-wondering <em>wtf</em> is up?</p>\n\n<blockquote>\n <p>bored: 🐼 ???</p>\n</blockquote>\n\n<p><a href=\"https://letmegooglethat.com/?q=what+does+iff+mean\">iff</a> you are so inclined, you can follow along with the madness here -></p>\n\n<ul>\n <li><a href=\"https://github.com/ahoward/drawohara.io\">https://github.com/ahoward/drawohara.io</a></li>\n <li>here <a href=\"https://bsky.app/profile/drawohara.io\">https://bsky.app/profile/drawohara.io</a></li>\n <li>or here -> <a href=\"https://www.instagram.com/drawohara\">https://www.instagram.com/drawohara</a></li>\n <li>or even here (ssssshhhhhhh) -> <a href=\"https://syntheticecho.com\">https://syntheticecho.com</a></li>\n</ul>\n\n</div>\n",
|
|
12
|
-
"assets": {
|
|
13
|
-
"assets/og.jpeg": {
|
|
14
|
-
"url": "/ro/pages/about/assets/og.jpeg",
|
|
15
|
-
"path": "pages/about/assets/og.jpeg",
|
|
16
|
-
"size": 8,
|
|
17
|
-
"img": {
|
|
18
|
-
"format": "jpeg",
|
|
19
|
-
"width": 855,
|
|
20
|
-
"height": 1200
|
|
21
|
-
},
|
|
22
|
-
"src": null
|
|
23
|
-
},
|
|
24
|
-
"assets/speak-english-pulp-fiction.gif": {
|
|
25
|
-
"url": "/ro/pages/about/assets/speak-english-pulp-fiction.gif",
|
|
26
|
-
"path": "pages/about/assets/speak-english-pulp-fiction.gif",
|
|
27
|
-
"size": 8,
|
|
28
|
-
"img": {
|
|
29
|
-
"format": "gif",
|
|
30
|
-
"width": 640,
|
|
31
|
-
"height": 360
|
|
32
|
-
},
|
|
33
|
-
"src": null
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"_meta": {
|
|
37
|
-
"identifier": "pages/about",
|
|
38
|
-
"type": "pages",
|
|
39
|
-
"id": "about",
|
|
40
|
-
"urls": [
|
|
41
|
-
"/ro/pages/about/assets/og.jpeg",
|
|
42
|
-
"/ro/pages/about/assets/speak-english-pulp-fiction.gif",
|
|
43
|
-
"/ro/pages/about/body.md"
|
|
44
|
-
],
|
|
45
|
-
"created_at": "2025-04-23 04:38:28 +0000",
|
|
46
|
-
"updated_at": "2025-04-23 04:38:28 +0000",
|
|
47
|
-
"rel": {
|
|
48
|
-
"curr": "pages/about",
|
|
49
|
-
"prev": null,
|
|
50
|
-
"next": "pages/contact"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"_meta": {
|
|
56
|
-
"url": "/ro",
|
|
57
|
-
"type": "pages",
|
|
58
|
-
"id": "about"
|
|
59
|
-
}
|
|
60
|
-
}
|
/data/public/ro/nerd/{fastest-possible-embeddings/attributes.yml → fastest-possible-embeddings.yml}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/data/public/ro/posts/{almost-died-in-an-ice-cave/attributes.yml → almost-died-in-an-ice-cave.yml}
RENAMED
|
File without changes
|
|
File without changes
|
/data/public/ro/posts/{lemmings-considered-harmful/attributes.yml → lemmings-considered-harmful.yml}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|