Introduction to padrino


Published on

An introduction to the Padrino, a Ruby web development framework, built for performance, on top of Sinatra.

Published in: Technology
1 Comment
1 Like
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Introduction to padrino

  1. 1. Introduction to Padrino Toronto Ruby Brigade
  2. 2. What is Padrino? A Framework built on top of Sinatra ...a micro-framework ● good for small web application ● small footprint ● easy to learn and use
  3. 3. What is Padrino?● A quote from the Padrino mailing list: ○ The Padrino framework appreciates and believes in the philosophy of Sinatra [in] keeping things simple, elegant, and closer to the metal while still allowing you to express yourself in a ruby-esque manner. However at times its nice to have some more additional functionalit [y] (like helpers, mailers, even caching) that Rails does [have]; and its nice to have those features without leveraging their full opinionated stack. ■ Arthur Chiu
  4. 4. How is it different than Sinatra?Adds generators for building projects: ● Can be tiny ○ padrino g project my_project --tiny ● Can be Rails like ○ padrino g project my_big_project -d activerecord -s prototype -e erb -a sqlite -t rspec -m mocha
  5. 5. padrino g project my_project --tiny
  6. 6. padrino g project my_big_project -d activerecord -s prototype -e erb -a sqlite -t rspec -m mocha
  7. 7. How is it different than Sinatra?Helpers and functionality familiar to Rails developers: ● Tag helpers (tag, content_tag, input_tag, form_tag, link_to, image_tag) ● Mailer functionality (similar to ActiveMailer) ● Admin Interface (inspired by Django) ● Reloading (automatically reloads server, previously you had to use something like shotgun to have this behaviour with Sinatra -- never a problem with Rails) ● Localization support ● [complete list:]
  8. 8. How is it different than Rails?Has a flexible project generator: ● padrino g project test_app -d datamapper -b ● padrino g project test_app -d mongoid -t rspec -e haml -m rr -s jquery -b ● padrino g project test_app --test none --renderer none ● Plugin Generator ○ ... ● [more details:]
  9. 9. How is it different than Rails?Mounting sub-applications: ● Extend application functionality by building apps ○ Build apps within an app ■ Padrino.mount("blog").to("/blog") ■ Padrino.mount("website").to("/website") ■ Padrino.mount("app").to("/")Advanced mounting: ● Padrino.mount("Blog").to("/").host("") ● Padrino.mount("Admin").host("") ● Padrino.mount("WebSite").host(/.*.? ● Padrino.mount("Foo").to("/foo").host(""[more details:]
  10. 10. padrino g app my_sub_app
  11. 11. How is it different than Rails?Has automatic administration interface generator --inspired by Django: ● padrino g admin ○ generate admin application to be mounted inside main application ● padrino rake ar:migrate ○ for admin tables ● padrino rake seed ○ create first admin account wizard ● padrino generate admin_page model_name ○ adding a page to manage a new model ● [more details:]
  12. 12. padrino g admin
  13. 13. 1) Run padrino rake ar:migrate2) Run padrino rake seed3) Visit the admin panel in the browser at /admin
  14. 14. Administration login page
  15. 15. User editing form
  16. 16. Why would someone choose todevelop with Padrino VS Rails?From beginner... ● Sinatra is much easier to learn conceptually and in practice.
  17. 17. Why would someone choose todevelop with Padrino VS Rails?... to advanced. ● Once applications reach a certain size [...], Sinatra begins to break down without some imposed structure, feature extensions and a framework to bring things together. ○ Nathan Esquenazi
  18. 18. Why would someone choose todevelop with Padrino VS Rails?Other reasons why you might want to take a look atPadrino: ● Benchmarks performance of Padrino vs Rails (memory footprint, speed) ● The ability to easily scale up a Sinatra based app with more features and functionalities with Padrino modules & embedded apps (app within an app) ● In Rails, Sinatra is already used sometimes as a platform for building plugins and extending Rails functionality ● Agnostic generators that generate a variety of components for your project (orms, js, renderers, tests, etc...) ● Admin interface application that can be generated into your existing padrino application ("... not just the scaffold, but the whole house" -- to paraphrase Django)
  19. 19. Why would someone choose todevelop with Padrino VS Rails?Selling Padrino: ● My motivation? I like to touch all pieces of my stack on my own, so I use a framework where I can easily look under the hood. ○ Florian Gilcher
  20. 20. @victorbstan With help from the Padrino community &Special thanks to the Toronto Ruby Brigade