Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
More robust location definitions (#93)
* More robust location definitions Say you had this Oaken seed file: ```ruby users.create :kasper, name: "Kasper" ``` We want `users.method(:kasper)` to point back to that file and line to help debugging. However, we had a hardcoded db/seeds in our detection, which meant that create/upsert/label in tests would fail on a NoMehodError because our `find` wouldn't return anything. In tests, labels make less sense in general, so I'm thinking we should allow those. I'm also thinking I should try to more sharply define the preparation phase versus the running phase. The preparation phase: loading and executing db/seeds.rb, setup defaults, helpers and common records The running phase: when running tests, you shouldn't mutate anything really, and labels shouldn't suddenly spring up, generally things should be deterministic. `Oaken.preparing?`/`Oaken.running?` may be on the table too. Note: this does get complicated if people are using `seed "cases/pagination"` with one-off seeds. Hm. Anyway, I'm detecting the path via a quirk on the label + our loading so we don't need to use `lookup_paths` at all. I'm not sure I'm liking any of this. * Ruby 3.4 changed the format, hm * Don't need to transform_values to avoid capturing the record reference I don't think
- Loading branch information