rubymotion/BubbleWrap

View on GitHub
GETTING_STARTED.md

Summary

Maintainability
Test Coverage
# Getting Started with BubbleWrap

A short guide to starting a RubyMotion application using the bubble wrappers.

## A quick note about RubyMotion

[RubyMotion](http://www.rubymotion.com/) is a commercial product available from
[HipByte SPRL](http://www.hipbyte.com/). RubyMotion needs a recent (10.6 or newer)
version of Mac OS X and Apple's Xcode tools installed. If you don't have a working
RubyMotion install take a look at the [getting started guide](http://www.rubymotion.com/developer-center/guides/getting-started/).

## Create a new RubyMotion project

RubyMotion ships with the `motion` command-line tool to handle creating projects,
updating and creating support tickets.

```
$ motion create bw-demo
    Create bw-demo
    Create bw-demo/.gitignore
    Create bw-demo/Rakefile
    Create bw-demo/app
    Create bw-demo/app/app_delegate.rb
    Create bw-demo/resources
    Create bw-demo/spec
    Create bw-demo/spec/main_spec.rb
```

This gives us an empty project (and one failing spec).  That's fine for now.

## Set up Bundler

[Bundler](http://www.gembundler.com/) is a project to manage your project's
RubyGem dependencies. You can get by without it if you want to, but it will
save time and hassle as the number of BubbleWrap gems grows over time.

```
$ gem install bundler
```

Create a new file called `Gemfile` in your project directory and add the
following:

```ruby
source :rubygems
gem 'bubble-wrap', '~> 1.0.0'
gem 'rake'
```

Then run `bundle` from the command-line in the same directory and Bundler
should install BubbleWrap and Rake for you.


## Adding BubbleWrap

Now that we have BubbleWrap installed we need to configure the project to use
it - the easiest way is to add Bundler to our build-environment and tell it 
to take care of everything for us.

Edit your project's `Rakefile` and add the following just under `require 'motion/project'`:

```ruby
require 'bundler'
Bundler.setup
Bundler.require
```

Now when you build your project by running `rake` you will see the BubbleWrap files
being compiled into your project.

## Customising BubbleWrap requires

By default BubbleWrap will include all the bubble wrappers into your project, but often
you won't need them all - perhaps you only want to use BubbleWrap's `http` wrappers?
You can change your bubble-wrap line in your `Gemfile` as follows:

```ruby
gem 'bubble-wrap', '~> 1.0.0', :require => 'bubble-wrap/http'
```

If you just want core, the change is similarly easy:

```ruby
gem 'bubble-wrap', '~> 1.0.0', :require => 'bubble-wrap/core'
```

Also, if you don't want any of BubbleWrap loaded by default, and you just want to use
it's ability to add projects to your build system you can change it to:

```ruby
gem 'bubble-wrap', '~> 1.0.0', :require => 'bubble-wrap/loader'
```

And modify your `Rakefile` to include one or more `BW.require` lines:

```ruby
BW.require '/path/to/some/files/**/*.rb'
```

For more information in using `BW.require` take a look at
[the bubblewrap hacking guide](HACKING.md).

## Go forth and conquer!

The developers wish to thank you for using BubbleWrap.
Please feel free to open issues or pull requests on 
[GitHub](https://www.github.com/mattetti/BubbleWrap), join our
[mailing list](https://groups.google.com/forum/#!forum/bubblewrap)
or join us on `#bubblewrap` on `irc.freenode.net`.