Staying Dry in Rails using code generation

1,885 views
1,828 views

Published on

A presentation about a code generator that generates a complete datamodel for ruby on rails

Published in: Technology, Business
2 Comments
6 Likes
Statistics
Notes
No Downloads
Views
Total views
1,885
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
37
Comments
2
Likes
6
Embeds 0
No embeds

No notes for slide

Staying Dry in Rails using code generation

  1. 1. Being DRY Your code might be, but are you? By Jeroen van Dijk
  2. 2. Examples of tools to make you DRY... rails-templates capistrano I18n rake scaffolds sass haml make_resourceful
  3. 3. What is missing to keep you DRY? ... An idea: Scaffold of your complete datamodel?
  4. 4. But scaffolds generate code... ... for just one resource! ... not following my own conventions! ... that still requires a lot of customization! All true, that’s why I’ll not talk about the old way of scaffolding...
  5. 5. Instant Rails rails shop -m http://www.jeevidee.nl/instant_rails_application.txt
  6. 6. Don’t like uml or need customization? For examples or just to start For an old application: “rake dm:export” For a new application: “rake dm:xmi:to_yaml” Customize • which templates should be generated • which attributes/association should be used in your templates
  7. 7. Not enough? • Adapt the templates to your liking • Define your own formats email: native_type: string examples: valid: jeroen@jeevidee.nl invalid: jeroen_jeevidee.nl display: default: “mail_to(“{{field}}”)
  8. 8. Useful for... • super fast prototyping • refactoring • applying good conventions (e.g. css, models) Not just uml2rails
  9. 9. The new DRY for Rails? • Design the basics of your application • Run the generator with your own customizations • Customize the application
  10. 10. Summary of features Yaml/Uml export to: OK Models OK Views (+helpers) OK Controllers OK Migrations OK Fixtures OK Custom formats FAIL Documentation + Tests PENDING Intelligent generation of Routes PENDING Generation of Tests/Specs/Stories Information on attributes and associations is exploited in all of the above.
  11. 11. More info or contribute Source http://github.com/jeroenvandijk/dm_generator http://github.com/jeroenvandijk/dm_templates http://github.com/jeroenvandijk/dm_designs Documentation/blog (coming soon) http://www.jeevidee.nl Demonstration rails shop -m http://www.jeevidee.nl/instant_rails_application.txt
  12. 12. Questions?

×