Agile Development With Hobo

Post on 22-Jan-2015

2.418 views 5 download

description

The next slide in the series gives more details about the wonders of Hobo.

Transcript of Agile Development With Hobo

Agile Web Development with Hobo

Evarist Lobo

evarist@gmail.com

Introduction

Hobo is a rapid web application builder It uses Ruby on rails and several plugins Provides default user model and themes CRUD and AJAX support DRYML tagging language and libraries Easily customizable

Prerequisites

Assumes basic knowledge of web development, databases, Ruby and Rails

For Windows: install InstantRails For MacOS X: install Locomotive Test that you have Ruby and Rails up and

running

Getting started

Download hobo gem from hobocentral Install hobo gem

Create Application Skeleton

hobo <appname> Runs Rails Runs Hobo App generator Default theme Basic user model

Create MySQL Database

Use phpmyadmin <appname>_development

Create Model and Controller

cd <appname>/script/generate hobo_model <model_name>

creates basic files, unit tests and schema

cd <appname>/script/generate hobo_model_controller <model_name>

creates controller and helper classes

Add Fields

Add fields to your tables in the migrations scripts

auto dates foreign keys are Hobo options rake db:migrate

Create Object Relationships

Advert belongs_to :user belongs_to :category set_creator_attr :user

Start the application

Use Instant Rails Console to start application Login signup search Uses acts_as_authenticated plugin Scriptaculous AJAX editor

Customizing Application

Using DRYML changing the index page each DRYML tag calls a Rails helper method changing generated page creating tags

Hobo Rapid tags

<index_page> <show_page> <new_page> <edit_page> <show_collection_page> <new_in_collection_page>

Core and Common tags

repeat panel show section maincol sidecol display_name

object_link new_object_link count with join if else

Page navigation

<page_nav> <first_page_link> <last_page_link> <next_page_link> <previous_page_link> <page_n_of_count>

CRUD buttons

<create_button> <delete_button>

Create your own tag !

def: Definition <def tag="my_tag">This is my tag</def> Use <my_tag/> Output This is my tag

Creating tags

Tags with attributes The attributes become local variables inside

the tag. Passing arbitrary values Implicit context

Creating tag libraries

Use <taglib> to load tags from another Dryml file

Note that app/views/hobolib/application.dryml is implicitly imported into every Dryml template.

You can load the tags from a directory or a Ruby module

Using Tags from Ruby

Tags are just methods, they can be called from ERB scriptlets and from helpers.

Call with parameters or content

Modifying theme and stylesheet

Look at screencast for example Many designs available at opendesigns.org

Hosting your Applications

Capistrano is a tool to deploy ruby applications

Lots of plugins and tutorials exist to make your applications scale with memcache

You can host your application with Amazon S3 and EC2

Resources

http://www.hobocentral.net Download plugin Look at screencasts for quickstart Read the blogs Read the forums

Contributing

look at code in Trac Log bugs Send patches/bug fixes to Tom Locke Create documentation Create sample applications and tutorials

Thank You

Thanks to Tom Locke and others for creating Hobo.

Please email me your feedback at evarist@gmail.com