Skip to content

Commit

Permalink
move home, about, books, community, gallery from hobocentral to the c…
Browse files Browse the repository at this point in the history
…ookbook app.
  • Loading branch information
bryanlarsen committed Jan 24, 2013
1 parent a84c44e commit 399abad
Show file tree
Hide file tree
Showing 21 changed files with 154 additions and 1 deletion.
4 changes: 4 additions & 0 deletions doc/lib/doc.rb
@@ -0,0 +1,4 @@
module Doc
class Engine < ::Rails::Engine
end
end
56 changes: 56 additions & 0 deletions doc/manual/about.markdown
@@ -0,0 +1,56 @@
About Hobo
{.document-title}

Hobo is a plugin for Ruby on Rails that brings a number of extensions&#8212;some small some large&#8212;to Rails application development. The common theme to these extensions is rapid development.

Like Rails itself, Hobo encapsulates a number of opinions about web application development. The opinion that is most central to Hobo is this: we have found that there is a great deal of similarity from one web application to the next. Much more similarity in fact, than is supported by today&#8217;s frameworks. We would rather implement this stuff once.

Of course this approach is common to all frameworks&#8212;everything that Rails provides is there because many or all web applications will need it: database connectivity, session management, working with HTTP, etc. etc. The difference with Hobo is that we are trying to take this idea to a much higher level than is normally expected from a web framework. The ultimate goal is: don&#8217;t program your application, just declare it.

Because Hobo might do a lot more than you have come to expect from a web framework, it can be difficult to get a handle on what Hobo actually <em>is</em>. For example, it seems that a lot of people see Hobo as the same kind of tool as something like Active Scaffold. It is not. The only way to really get an understanding of how Hobo can speed up your web application development is to use it. But to help you get started, here&#8217;s a brief summary of the main features you&#8217;ll find in Hobo.

### Model layer extensions

In a Hobo app, you typically add the declaration <code>hobo_model</code> to all of your models (although you don&#8217;t have to). This gives your models a bunch of extra smarts:

* [Lifecycles](/manual/lifecycles) :: REST is fine and dandy, but real applications need more than that. Define a state machine on a model and Hobo will add support for it in your controllers and views as well.

* [Migration generator](/manual/hobo_fields/migration_generator) :: A hobo model has the declaration of the database fields <em>inside</em> the model source code. Using this information, Hobo can generate complete migrations for you, including the down migration. You can freely add, remove and rename fields and entire models. Hobo will compare the state of the database with the state of your source-code and create a migration to bring the database up to date.

* [Rich field types](/manual/hobo_fields/rich_types) :: When you declare your field types in Hobo, you are not limited to the basic SQL types. Hobo extends the default set with richer types like <em>HTML</em>, <em>markdown</em> and <em>email-address</em>. You can also add your own. The view layer knows how to render these types properly, and the model layer knows how to validate them.

* [Permission system](/manual/permissions) :: Hobo uses a model-centric permission system. On each model you declare exactly which user is allowed to do what. The controller layer will only allow creates, updates and deletes which you have permitted. The view layer will also use this information in various ways, e.g. automatically removing fields from forms if you do not have permission to change them.

* [User model](/manual/users_and_authentication) :: The concept of a user model is baked-in in Hobo. If you declare any model as a <code>hobo_user_model</code>, you&#8217;ll automatically get all the database fields and methods to give you authentication (log-in), including &#8216;remember me&#8217; functionality.

### Controller layer

In a similar manner to the model extensions, you will typically add the declaration <code>hobo_model_controller</code> to every controller in your Hobo app. The features this brings in can eliminate a great deal of controller layer programming.

* [Auto-actions](/manual/controllers#selecting_the_automatic_actions) :: Just declare <code>auto_actions :all</code> and you&#8217;ll get default implementations of all the &#8216;standard&#8217; controller methods: index, show, new, edit, create, update and destroy. You&#8217;ll even get actions to handle collections that your model provides (e.g. <code>topics</code> and <code>new_topic</code> on a forum resource). These actions can be extensively customised.

* Filtering, searching and sorting :: Publish parameterized filtering and searching functionality in a snap.

* [Sub-sites](/tutorials/subsite) :: Web apps often need different &#8220;sub sites&#8221; for different kinds of user, the typical example being the &#8220;admin&#8221; site. Just create a directory in app/controllers, and Hobo will set it all up for you.

* [Automatic routing](/manual/controllers) :: If you want to stick with conventional REST-style and state machine routes, all the information needed to configure the routes can be found in your controllers. Hobo has an automatic router that inspects your controllers and does the job for you.

### View layer

The view layer is where the real Hobo magic lies. In fact it was the experience of spending 80% of development time in the view layer that led to the creation of Hobo. The vast majority of the effort behind Hobo has gone into the DRYML template language.

* [DRYML](/manual/dryml-guide) :: A tag based template language built. While the idea of defining your own tags is not new, DRYML has a unique take. Defining tags is extremely simple and lightweight, and, more importantly, DRYML has a very powerful mechanism for the customising the output of a tag each time it is used. This gives a very powerful combination of high-level re-use along with &#8220;context-over-consistency&#8221; tweaks. DRYML also features an <em>implict context</em> that makes you&#8217;re view code poetically brief.

* [Ajax mechanism](/manual/ajax) :: DRYML makes it very easy to dynamically update parts of your page. There&#8217;s no need for separate partial files - just mark the part you want to update, and DRYML will automatically extract it. When used in conjunction with Hobo Rapid, Ajax becomes so easy it&#8217;s often <em>less</em> work than a non-ajax approach.

* [Hobo Rapid](/api_plugins/hobo_rapid) :: Hobo Rapid is a combination of view helpers, DRYML tags, JavaScript and CSS that take rapid development to a whole new level. You could say that all the rest of Hobo exists in order to make Hobo Rapid possible. Rapid provides a wide range of features, from small things like creating links and form-controls, all the way up to entire pages (e.g. show pages, index pages, edit pages&#8230;). Together, these give you a working user-interface completely automatically, based on your models. The important point though, is that thanks to the customisation features in DRYML, this automatic user-interface can be customised incrementally until you&#8217;ve got exactly the interface that your individual app needs.

### General features

On top of these extensions to the three MVC layers, Hobo provides some bits and pieces that help tie it all together.

* [Generators](/manual/generators) :: Rather than generate &#8216;normal&#8217; Rails classes and then upgrade them with Hobo features, Hobo provides custom generators that create source-code that&#8217;s ready to work with Hobo.

* [Ruby extensions](/manual/hobo_support) :: Hobo&#8217;s answer to Active Support - a grab bag of useful Ruby extensions to make your coding a little easier.

Hopefully this overview gives you a feel for what Hobo is all about. There&#8217;s nothing like trying it though, so move on to the <a href='/docs/two-minutes'>two minute Hobo app</a> or one of the other <a href='/docs'>tutorials</a>.
12 changes: 12 additions & 0 deletions doc/manual/books.markdown
@@ -0,0 +1,12 @@
Books
{.document-title}

<a href="/books/rapid-rails-with-hobo.pdf"><img src="/assets/book1.png"/>Rapid Rails with Hobo 1.0</a>

<br/>

<a href="/books/rapid-rails-3-with-hobo-beta-6.pdf"><img src="/assets/book1.png"/>Rapid Rails 3 with Hobo 1.3</a>

<br/>

<a href="/books/hobo-at-work.pdf"><img src="/assets/book2.png"/>Hobo 1.0 At Work</a>
22 changes: 22 additions & 0 deletions doc/manual/community.markdown
@@ -0,0 +1,22 @@
Community
{.document-title}

The Hobo community hangs out in several places:

## Google Groups

We have two mailing lists:

* [Hobo Users](http://groups.google.com/group/hobousers) is a moderately active group where lots of friendly people hang out. It is the best place to ask questions.

* [Hobo Dev](http://groups.google.com/group/hobodev) is an infrequently active group. The Hobo developers are subscribed to this list, but are just as likely to post in Hobo Users when discussing the development of Hobo.

## Disqus

In late 2012 we switched to Disqus for comments on this site. So down at the bottom of this or any other page here you can click on the "Community" tab to see what everybody is commenting on.

## Github

The [Github Hobo organization](https://github.com/Hobo/) is very central to Hobo. It contains Hobo itself, sample applications and plugins. If you have any sample applications or plugins to contribute, we'd love to host them here. If you want to join the group, just ask.

[Github Issues](https://github.com/Hobo/hobo/issues) is used for bug tracking for Hobo 2.0. [Lighthouse](http://hobo.lighthouseapp.com) was used for earlier versions of Hobo.
6 changes: 6 additions & 0 deletions doc/manual/dive-in.markdown
@@ -0,0 +1,6 @@
## Dive in!

* Read <a href="/manual/about">more</a> about what Hobo actually is.
* Try <a href="/tutorials/two-minutes">Hobo in two minutes</a>, or run through one of the other <a href="/tutorials">tutorials</a>.
* Learn more: read the <a href="http://cookbook.hobocentral.net/manual">Manual</a> or the <a href="http://cookbook.hobocentral.net/api_taglibs">Tag Library Reference</a>.
* And, most important of all: <a href="/manual/community">SAY HI!</a> in one of our groups. We'd love to hear from you.
33 changes: 33 additions & 0 deletions doc/manual/gallery.markdown
@@ -0,0 +1,33 @@
Gallery
{.document-title}

NOTE: put screenshots in /doc/vendor/assets/images/screenshots
{.hidden}

### [![BeanBag Learning](/assets/screenshots/beanbag.png) BeanBag](http://beanbaglearning.com)

Beanbag is an online educational resource offering a sophisticated web portal to connect tutors, parents, teachers and students together in a simple and easy to use service. The site makes use of much of the power of the social networking, location and multimedia features of the modern web to ensure that the right match up is made between parents and tutors in a wide range of disciplines.

### [![Art$Work](/assets/screenshots/artswork.png) Art$Work](http://artworksohio.com)

Art$Work is an online, searchable database of arts and cultural employment opportunities in Ohio. It is a free and efficient way for job seekers to connect with a wide range of Ohio’s arts and cultural employers.The Ohio Arts Council created Art$Work with job seekers in mind to be simple, quick and free. Job seekers just choose their job search criteria and hit “Search.” Our database will deliver job descriptions and employer contact information for the positions that meet your criteria.

### ![REEport](/assets/screenshots/reeport.png) REEport

REEport is the new state-of-the-art Web 2.0 project lifecycle reporting system that will soon be used by all NIFA grantees, including State and National Partners, for the completion and submission of documentation for NIFA funded projects. The REEport system provides facilities for user-defined project approval workflow at the site level (e.g., University of Maryland) and automated workflow routing to the appropriate NIFA National Program Lead (by subject expertise) for project progress reporting approval . REEport is the first web-based system to include all OMB-specified requirements for research progress reporting.

### [![They Shoot Music](/assets/screenshots/theyshootmusic.png) They Shoot Music](http://theyshootmusic.com)

They Shoot Music is an innovative Indie band video site which features some of the best of the European indie music scene, wrapped in a cool quirky interface. The team at TSMDT publish around one new video session a week, filmed impeccably in street scene backdrops and with the kind of style you won't ever see on YouTube. Their efforts - coupled with a superbly designed user interface - have already received award nominations and the attention of financial investers in the Viennese ecosystem. Matthias says "I had a lot of fun in the beginning playing around with it and Hobo definitely helped me to do the developing work in between my studies and the shooting-/management tasks of theyshootmusic."

### ![Tandberg Grants](/assets/screenshots/tandberg.png) Tandberg Grants

Tandberg uses this new Hobo application to manage the grant submission and award lifecycle for potential customers and contract grant writers. Potential customers are typically public-sector schools and other entities that can benefit from their Tandberg Telepresence products. This project was urgent due to the importance of supporting ARRA funds. Developer Venka Ashtakala says "Hobo allowed us to develop a powerful, role-based data and reporting solution in a quick and timely manner that helped the client manage their business workflow easily and efficiently."

### [![PAD Houses](/assets/screenshots/padhouses.png) PAD Houses](http://padhouses.com)

Created by Jerrold Thompson, padhouses.com promotes the classification and circulation of quality thought provoking architecture within the design community and to the patrons of the field, including real estate investors, clients, and brokers. "Hobo provides a great balance between out of the box functionality and the ability to extend and customize your application" says Jerrold, "DRYML is the jewel in the Hobo crown. Much thought has been given to provide a solid and extensible language that really makes sense. The implicit context and polymorphism it incorporates makes creating reusable code much easier. The Hobo User's Group has also been phenomenal in responding, incorporating, and providing excellent critique. It is really the first time I have experienced such a quality level of communication in a support group community. And I really appreciated the fact that my novice questions were not met with disdain."

### [![Cupetition](/assets/screenshots/cupetition.png) Cupetition](http://cupetition.com/)

Cupetition is a site for sports lovers that let's you manage championships online. "Invite your friends, book your games and reach the best scores". Cupetition's creator Tiago Franco says "In my opinion Hobo provides a good development setup out-of-the-box, with the essentials of any modern application. At its current stage it can be used not just for rapid prototyping, but also for production ready applications."</p>
4 changes: 3 additions & 1 deletion doc/manual/slugs
@@ -1,5 +1,7 @@
toc
about
community
download
books
changes13
changes20
faq
Expand Down
4 changes: 4 additions & 0 deletions doc/manual/toc.markdown
Expand Up @@ -10,6 +10,10 @@ First you need to [**Download and Install**](/manual/download) Hobo.
Next you will probably want to check out one of our fine
[**tutorials**](/tutorials).

More information about Hobo is provided on our [**About**](/manual/about) page.

[**Community**](/manual/community) tells you where to go to get help.

## Ruby

[**Hobo Support**](/manual/hobo_support) is akin to
Expand Down
14 changes: 14 additions & 0 deletions doc/manual/what-is-hobo.markdown
@@ -0,0 +1,14 @@
## What is Hobo?

Hobo is a collection of open-source gems/plugins for Ruby on Rails
that help you build anything from throwaway prototypes and internal
utilities to meticulously crafted full-blown web apps. The goal: write
less code. So much less in fact that it starts to feel like you're not
implementing your app at all, you’re just declaring what you want.

It turns out that the hard part is not going fast, but staying
flexible. This is where we think Hobo really shines. If you’ve played
with “app builders” before, you’ll know about The Wall. The Wall is
the point you reach where you have to give up and do it the old way
because that one feature you really need just isn’t going to
happen. Hobo doesn’t have one.
Binary file added doc/vendor/assets/images/barquin-logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/book1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/book2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/hobo-logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/screenshots/artswork.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/screenshots/beanbag.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/screenshots/reeport.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/vendor/assets/images/screenshots/tandberg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 399abad

Please sign in to comment.