rango
TRANSCRIPT
![Page 1: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/1.jpg)
Introduction to RangoJakub Šťastný aka Botanicus
Monday, November 30, 2009
![Page 2: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/2.jpg)
About me
• Designer & author fo Rango
• Contributor to many OSS include rSpec, Merb, Usher, Racksh etc
• http://twitter.com/botanicus
• Currently looking for a job or contract
• http://static.101ideas.cz/CV.html
Monday, November 30, 2009
![Page 3: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/3.jpg)
What is Rango?
• Rack-based lightweight web framework
• As agnostic as possible
• The goal is to provide solid framework for building sites in Ruby. More robust than Sinatra, but smaller than Rails or Merb.
Monday, November 30, 2009
![Page 4: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/4.jpg)
Features
• Ruby 1.9-only
• Provides generators, but don’t insist on a certain structure
• Code reloading by shotgun
• Bundler support
• Inspired by Django & Merb
Monday, November 30, 2009
![Page 5: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/5.jpg)
• Django terminology (template, view = view, action in controller)
• Very flexible, you can use just whichever subset of Rango you want and it will work.
• No conventions, just recommendations
Monday, November 30, 2009
![Page 6: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/6.jpg)
Boot Process
• Script init.rb should setup environment
• Work as runner: ./init.rb myscript.rb
• And as a console: ./init.rb -i
• Or both altogether: ./init.rb -i myscript.rb
• Start web server: ./config.ru
• Rewrite arguments: ./config.ru -s thin
Monday, November 30, 2009
![Page 7: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/7.jpg)
Routers
• Usher, Rack-mount
• URLMap, Rack-router
• Rango::UrlHelper for url(:post, id)
• env[“rango.router.params”]
Monday, November 30, 2009
![Page 8: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/8.jpg)
Rendering
• You don’t need controllers for it
• Or just include Rango::RenderMixin
Monday, November 30, 2009
![Page 9: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/9.jpg)
Template Inheritance
• Default values for blocks
• Block can return whichever value
• AJAX
Monday, November 30, 2009
![Page 10: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/10.jpg)
Basic Example
Monday, November 30, 2009
![Page 11: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/11.jpg)
Returning values
Monday, November 30, 2009
![Page 12: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/12.jpg)
AJAX
Monday, November 30, 2009
![Page 13: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/13.jpg)
Generic Views
Monday, November 30, 2009
![Page 14: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/14.jpg)
Monday, November 30, 2009
![Page 15: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/15.jpg)
Monday, November 30, 2009
![Page 16: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/16.jpg)
HTTP Errors Handling
Monday, November 30, 2009
![Page 17: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/17.jpg)
Monday, November 30, 2009
![Page 18: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/18.jpg)
Monday, November 30, 2009
![Page 19: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/19.jpg)
Future
• January 2010 in Rango 0.3: Mountable apps via Pancake: each app can run standalone or be used as a library (can be distributed as gems with assets & templates)
Monday, November 30, 2009
![Page 20: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/20.jpg)
Links
• GitHub: http://github.com/botanicus/rango
• Wiki: http://wiki.github.com/botanicus/rango
• Issues: http://github.com/botanicus/rango/issues
• Blog: http://botanicus.github.com/rango
• Twitter: http://twitter.com/RangoProject
Monday, November 30, 2009
![Page 21: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/21.jpg)
Related Projects: Pupu
• Package manager for media stuff
• JS/CSS frameworks & plugins, icon sets ...
• pupu install autocompleter
• Helper: pupu :autocompleter
• Can handle dependencies
Monday, November 30, 2009
![Page 22: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/22.jpg)
Related Projects: Simple-templater
• Highly-opinionated
• Reusable hooks
• Redefine partially or the whole
• ~/.simple-templater/rango/project
Monday, November 30, 2009
![Page 23: Rango](https://reader035.vdocuments.us/reader035/viewer/2022062513/55555077b4c90530208b4bb1/html5/thumbnails/23.jpg)
• Thank you for your attention!
Monday, November 30, 2009