Parasite

Turning Rails into a Camping factory

Camping app developers no longer have any reason to envy their Ruby on Rails friends: Parasite brings generators, environments, and other Rails-y goodness to the world of Camping app development.

Parasite is currently at version 0.2. The Parasite package is composed of two gems: parasite and the camping_generator. The first provides a way to hook into the Rails development environment, while the second provides a generator for creating Camping apps quickly and painlessly.

Installation

To install parasite and the camping_generator fire up a terminal and:

$ sudo gem install parasite

parasite will require the camping_generator, along with Rails and Camping. More details on installing those packages can be found at their project pages.

If you are installing Camping for the first time, I would encourage you to install the camping-omnibus gem:

$ sudo gem install camping-omnibus --source http://code.whytheluckystiff.net

If you wish to install the camping_generator without the parasite gem, you can install it directly with:

$ sudo gem install camping_generator

Usage

Parasite

The parasite package consists of an executable and a set of Rake templates to facilitate the building of Camping apps. Using the executable, you can latch on to a “host” Rails project. Just run the executable in an existing Rails environment.

$ rails example_project
      create  
      create  app/controllers
            ...
$ cd example_project/
$ ls
README          components      doc             public          tmp
Rakefile        config          lib             script          vendor
app             db              log             test
$ parasite
/path/to/parasite/parasite-0.2.0/bin/../templates/

/path/to/parasiteparasite-0.2.0/bin/../templates/server.rake

Installed parasite to ./vendor/plugins/parasite
$ ls -R vendor/plugins/parasite/
tasks

vendor/plugins/parasite//tasks:
server.rake
$

To see a description of the installed rake tasks,

$ rake -T
    rake camping:server            # Run the camping server with specified files or all .rb files in the apps directory
    ...

Now you’re ready to start creating camping apps, using the camping_generator.

Camping Generator

The camping_generator adds a generator for creating templated Camping apps. If you’re not familiar with the structure of single file Camping apps, see The Camping Short, Short Example. To see the usage,

$ script/generate camping
Usage: script/generate camping CampingName [options]

Options:
        --scaffold                   Generate controllers and views
        --session                    Add session support
        --stylesheet                 Include a dynamic style sheet

Rails Info:
    -v, --version                    Show the Rails version number and quit.
    -h, --help                       Show this help message and quit.

General Options:
    -p, --pretend                    Run but do not make any changes.
    -f, --force                      Overwrite files that already exist.
    -s, --skip                       Skip files that already exist.
    -q, --quiet                      Suppress normal output.
    -t, --backtrace                  Debugging: show backtrace on errors.
    -c, --svn                        Modify files with subversion. (Note: svn must be in path)

Description:
    The camping generator creates a new camping app in a single file in the /app
    directory.

Example:
    ./script/generate camping --scaffold Blog Post User

    This will create a Blog app with models (Posts and Users), views,
    controllers, and the appropriate pre-amble and post-amble.

For example, let’s create the canonical jukebox app using the generator:

$ script/generate camping Jukebox Artist Record Track --scaffold --stylesheet
      exists  app/
      create  app/jukebox.rb
$ cat app/jukebox.rb 
#!/usr/bin/env ruby

require 'camping' 
Camping.goes :Jukebox

module Jukebox

end

module Jukebox::Models
  class Artist < Base; end
  class Record < Base; end
  class Track < Base; end
    ...

Closer investigation of the jukebox app is left as an exercise to the reader.

Support

The best place for getting support is on #camping on irc.freenode.net. Just ask for mfredrickson. Also, you can file bugs and patches on Parasite project page on RubyForge.