diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-07 02:46:37 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-07 02:46:37 +0200 |
| commit | 7b6af89509e8439fe2474e623ee97e4db67ab011 (patch) | |
| tree | 47aa227de58d566727e8afdc44d7abc0934f22a6 /Gemfile.lock | |
| parent | 527376039c527eb8f559c5e6da76429bc3f3ee4f (diff) | |
Replace awesome_nested_set with a plain parent_id-based NestedTree concern
Root-caused this session: appending a child to any node never widened
that parent's own rgt boundary, on the pinned revision (Gemfile tracked
main directly, chasing a too-conservative gemspec constraint - not, as
first assumed, a deliberate pin to avoid a known bug). Reproduced
cleanly on a single ordinary create with no concurrency and no bulk
operation involved, confirmed via the gem's own SetValidator, then
confirmed as the root cause of nodes_controller_test.rb's 3 long-standing
"pre-existing" failures - not three separate mysteries, one bug.
admin_controller's sitemap needed its own real conversion, not just a
drop-in: awesome_nested_set's lft column implicitly provided correct
depth-first tree order for free, which the old code combined with a
separate class-level each_with_level iterator. Both replaced by one
method, self_and_descendants_ordered_with_level, computing an ordered
[node, level] list in a single query-then-walk pass - checked against
the actual view template first (admin/index.html.erb) rather than
assumed, since it relies on list order alone to render correct visual
nesting.
lft/rgt/depth columns intentionally left in schema, unused - dropping
them is a separate, deliberately deferred migration once this is proven
running for a while, not bundled with the behavior change.
Diffstat (limited to 'Gemfile.lock')
| -rw-r--r-- | Gemfile.lock | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index 2e9a1ce..02c71ff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock | |||
| @@ -1,12 +1,4 @@ | |||
| 1 | GIT | 1 | GIT |
| 2 | remote: https://github.com/collectiveidea/awesome_nested_set.git | ||
| 3 | revision: 7a642749af74519b4bf3642d939061beb36835e1 | ||
| 4 | branch: main | ||
| 5 | specs: | ||
| 6 | awesome_nested_set (3.9.0) | ||
| 7 | activerecord (>= 4.0.0, < 8.2) | ||
| 8 | |||
| 9 | GIT | ||
| 10 | remote: https://github.com/erdgeist/chaoscalendar.git | 2 | remote: https://github.com/erdgeist/chaoscalendar.git |
| 11 | revision: 48fe5c517ae3895cc78d9d2fefbdd35b90d52ba7 | 3 | revision: 48fe5c517ae3895cc78d9d2fefbdd35b90d52ba7 |
| 12 | branch: erdgeist-ruby1.9 | 4 | branch: erdgeist-ruby1.9 |
| @@ -335,7 +327,6 @@ PLATFORMS | |||
| 335 | DEPENDENCIES | 327 | DEPENDENCIES |
| 336 | acts-as-taggable-on! | 328 | acts-as-taggable-on! |
| 337 | acts_as_list | 329 | acts_as_list |
| 338 | awesome_nested_set! | ||
| 339 | chaos_calendar! | 330 | chaos_calendar! |
| 340 | coffee-rails (~> 4.0) | 331 | coffee-rails (~> 4.0) |
| 341 | concurrent-ruby (~> 1.3) | 332 | concurrent-ruby (~> 1.3) |
| @@ -374,7 +365,6 @@ CHECKSUMS | |||
| 374 | activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e | 365 | activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e |
| 375 | acts-as-taggable-on (13.0.0) | 366 | acts-as-taggable-on (13.0.0) |
| 376 | acts_as_list (1.2.6) sha256=8345380900b7bee620c07ad00991ccee59af3d8c9e8574f426e321da2865fdc8 | 367 | acts_as_list (1.2.6) sha256=8345380900b7bee620c07ad00991ccee59af3d8c9e8574f426e321da2865fdc8 |
| 377 | awesome_nested_set (3.9.0) | ||
| 378 | base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b | 368 | base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b |
| 379 | bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd | 369 | bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd |
| 380 | builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f | 370 | builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f |
