We all know that standard Rails fixtures suck – they were good at the time of their invention, mainly because nothing better existed – but numerous weaknesses and problems have been mentioned since then.
After some time people addressed the pain points with various approaches – factory\_girl, object\_daddy, machinist, you name it.
While the above solutions are really great, they are quite different from standard fixtures in their philosophy, and I believe because of that some people just rolled on with the standard solution. Well, there is a new player in the town, so no more excuses.
Lite Fixtures are backward compatible with normal fixtures, while drastically reducing their complexity. Check out these examples from the GitHub README:
Patterns in fixture names – Using the pattern “(owners)s\_(color)\_(make)” in conjunction with the fixture
name “Freds\_red\_Ford” unpacks owner to Fred, color to red and make to Ford.
(owners)s_(color)_(make) Freds_red_Ford: year: 1977 Eds_blue_Chevy: year: 1987 Becomes Freds_red_Ford: owner: Fred color: red make: Ford year: 1977 Eds_blue_Chevy: owner: Ed color: blue make: Chevy year: 1987
Grouping of Data – Often fixtures group cleanly- family of users, manufacturers of cars, etc. Lite fixtures lets you nest data, so scoped values are propigated inward.
red_fords: make: ford color: red mustang: owner: freddy taurus: owner: freddy Becomes: mustang: make: ford color: red owner: freddy taurus: make: ford color: red owner: freddy
I really think this improvement should make it to the Rails core – unless they are replacing the fixtures with something radically different.
I am wondering if some body could write some thing similar to AR.to_fixture , for the lite fixture… I really need a quick and mature tool that can generate fixtures of data that already exist in the database maintaining the relationships..