README.md in sandoz-0.1.51 vs README.md in sandoz-0.1.52

- old
+ new

@@ -1,16 +1,29 @@ # 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: @@ -32,23 +45,25 @@ 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/[USERNAME]/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. +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).