Sha256: 3055e10e2f3aee83ca63df1239a0f0d4737d44eb4fbe07916a2436d8ca3fd744

Contents?: true

Size: 1.66 KB

Versions: 53

Compression:

Stored size: 1.66 KB

Contents

# Getting Started

Opal is a ruby to javascript compiler, an implementation of the ruby corelib and stdlib, and associated gems for building fast client side web applications in ruby.

## Installation

Opal is available as a gem, and can be installed via:

```
$ gem install opal
```

Or added to your Gemfile as:

```ruby
gem 'opal'
```

## Getting started with Opal

At its very core, opal provides a simple method of compiling a string of ruby into javascript that can run on top of the opal runtime, provided by `opal.js`:

```ruby
Opal.compile("[1, 2, 3].each { |a| puts a }")
# => "(function() { ... })()"
```

`opal` includes sprockets support for compiling Ruby (and ERB) assets, and treating them as first class JavaScript citizens. It works in a similar way to CoffeeScript, where JavaScript files can simply require Ruby sources, and Ruby sources can require JavaScript and other Ruby files.

This relies on the Opal load path. Any gem containing opal code registers that directory to the Opal load path. Opal will then use all Opal load paths when running sprockets instances. For rails applications, `opal-rails` does this automatically. For building a simple application, we have to do this manually.


### Adding lookup paths

Opal uses a load path which works with sprockets to create a set of locations which opal can require files
from. If you want to add a directory to this load path, you can add it to the global environment.

In the `Opal` module, a property `paths` is used to hold the load paths which
`Opal` uses to require files from. You can add a directory to this:

```ruby
Opal.append_path '../my_lib'
```

Now, any ruby files in this directory can be discovered.


Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
opal-1.5.1 docs/getting_started.md
opal-1.5.0 docs/getting_started.md
opal-1.5.0.rc1 docs/getting_started.md
opal-1.4.1 docs/getting_started.md
opal-1.4.0 docs/getting_started.md
opal-1.4.0.alpha1 docs/getting_started.md
opal-1.3.2 docs/getting_started.md
opal-1.3.1 docs/getting_started.md
opal-1.3.0 docs/getting_started.md
opal-1.3.0.rc1 docs/getting_started.md
opal-1.3.0.alpha1 docs/getting_started.md
opal-1.2.0 docs/getting_started.md
opal-1.2.0.beta1 docs/getting_started.md
opal-1.1.1 docs/getting_started.md
opal-1.1.1.rc1 docs/getting_started.md
opal-1.1.0 docs/getting_started.md
opal-1.1.0.rc1 docs/getting_started.md
opal-1.0.5 docs/getting_started.md
opal-1.0.4 docs/getting_started.md
opal-1.0.3 docs/getting_started.md