decaf

Ruby in the browser.

  • Owner: timimahoney/decaf
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Decaf

Decaf is a modification of WebKit that runs Ruby in the browser. Use Ruby to access the DOM, work with the web standards, and even print to the inspector. Now, you can build an entire web application in Ruby instead of JavaScript.

To use Ruby in the browser, either download a binary or build it yourself.

<script type='text/ruby'>
    window.onload do
        introduction = document.create_element('p')
        introduction.inner_text = 'Hello, world!'
        document.body.append_child(introduction)
    end
</script>

Using Ruby in the Browser

The same web platform APIs used by JavaScript are available in Ruby. If you're not familiar with JavaScript and the DOM, then check out these resources:

Differences from JavaScript

There are a few major differences between the APIs in JavaScript and Ruby.

  • In Ruby, methods and attributes are specified in underscore_case instead of camelCase.
  • The window variable is accessible from only the top-most scope. Elsewhere you can use the global $window.
  • Ruby accepts Procs and blocks as callbacks and listeners. For example:
# Ruby with implicit blocks
$window.set_timeout(1000) { console.log('Hello!') }
$window.onload do, event, console.log('The window loaded.')
end

# Ruby with explicit Procs
$window.set_timeout(Proc.new { console.log('Hello!') }, 1000)
$window.onload = Proc.new do, event, console.log('The window loaded.')
end

Final Notes

If you find any problems, then please report them in the issues section.

Main metrics

Overview
Name With Ownertimimahoney/decaf
Primary LanguageC++
Program languageEmacs Lisp (Language Count: 27)
Platform
License:
所有者活动
Created At2013-04-03 02:46:50
Pushed At2013-05-27 19:59:53
Last Commit At
Release Count3
Last Release Name0.2 (Posted on )
First Release Name0.1 (Posted on )
用户参与
Stargazers Count468
Watchers Count20
Fork Count8
Commits Count132.2k
Has Issues Enabled
Issues Count18
Issue Open Count8
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private