Skip to content

Instantly share code, notes, and snippets.

View adambeynon's full-sized avatar

Adam Beynon adambeynon

View GitHub Profile
module LocalStorage
def self.[](name)
`localStorage.getItem(name)`
end
def self.[]=(name, value)
`localStorage.setItem(name, value)`
end
def self.key?(name)
// runtime
Opal.modules = {};
Opal.register = function(name, body) {
Opal.modules[name] = body;
};
Opal.require = function(name) {
var module = Opal.modules[name];
@adambeynon
adambeynon / bar.rb
Created January 9, 2014 14:03
Sprockets can only require dependencies before the current file - so we end up with code like this: ```ruby class Bar < Foo end class Foo end ```
class Bar < Foo
end
require 'opal'
require 'rails_templates'
p Template.paths
# => ['login', 'logout', 'user', 'user/new']
describe NewProductView do
# do we have to repeat this?
view NewProductView
it "tries to add product on click submit" do
expect(view).to receive(:add_product).once
find('#submit').click
end
end
@adambeynon
adambeynon / promises.rb
Created December 22, 2013 21:32
example promises
Product.find(1).then do |product|
puts "product: #{product}"
end.else do
puts "failed :("
end
class User < Vienna::Model
attributes :first_name, :last_name
end
user = User.new
first = Frappuccino::Stream.new(user).capture(:changed_first_name)
last = Frappuccino::Stream.new(user).capture(:changed_last_name)
# last name is any change to first or last name
last_name = first.merge(last).map { "#{user.first_name} #{user.last_name}" }
module JqueryRspecHelpers
def stub_http(action, url, result)
expect(HTTP).to receive(action).with(url).and_yield(result)
end
end
describe User do
describe ".current" do
it "should make an http request for user details" do
stub_http(:get, '/current_user', { "name" => "Fred", "admin" => true })
describe "Timeouts" do
async "blah" do
default_timeout 100
set_timeout(4000) do
run_async { :ok }
end
end
end
@adambeynon
adambeynon / opal_metadata.js
Created October 31, 2013 20:25
Opal Metadata
Opal.register_metadata([
{
"method": "Array#size",
"file": "opal/array.rb",
"line": 12,
"source": "# This method.......\ndef size;....\nend"
},
{
"method": "Array#slice",