Sha256: f20e8c5b02a67d90a445b9dc364c94b12d2cf04e16259be7ce247383ae86e7ce

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

# A Gem Named Sandoz

## Rationale

But when we use Opal, all Ruby functions are defined within the Opal namespace, prepended with a `$`. So we're really defining `Opal.$setup`, `Opal.$draw`, etc.
p5.js expects that `setup` and `draw` are in the global namespace, and it also defines all of its methods in the global namespace. As such, there are two problems:

* p5.js needs to call a global `setup` and `draw` but, via Opal, we can't cleanly define a global `setup` and `draw`
* Ruby code needs to call the global p5.js functions (e.g. `createCanvas`), which requires wrapping all the p5.js functions in equivalent Ruby functions

Sandoz wraps the p5.js library, and bridges the Ruby methods to JavaScript, enabling us to call p5.js functions from Ruby.

## Installation

Make sure you have bundler installed

    gem install bundler

Add this line to your application's Gemfile:

```ruby
gem 'sandoz'
```

Then install dependencies:

    bundle install

Run:

    bundle exec rackup

How to Require:

    require 'opal'
    require 'sandoz'

    #Have to do this to get functions in global namespace
    include Sandoz
    #Option 2:
    Sandoz::defsketch do
      Sandoz::setup do
        Sandoz::size 600, 600
        Sandoz::rect 100, 100, 100, 100
      end
    end

```ruby
defsketch("content") do

  setup do
    size 600, 600
  end

  draw do
    fill 255, 0, 0
    rect 100, 100, 100, 100
  end

end
```

## Contributing

Bug reports and pull requests are welcome on GitHub at [https://github.com/hswick/sandoz](https://github.com/hswick/sandoz). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.


## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sandoz-0.1.52 README.md