Skip to content

Instantly share code, notes, and snippets.

@laser
laser / rpc_error.js
Created April 21, 2014 22:31
Receiving Error Code on Client
// Receiving Error Code on Client
var lastTodoId = 45;
$('#todos li').click(function(e) {
var $tgt = $(e.target), todoId = $tgt.prop('id');
TodoManager.deleteTodo(todoId, function(err) {
if (err.code === 1004) {
alert(err.message);
@laser
laser / batch_rpc.js
Last active August 29, 2015 14:00
Batching createTodo Calls on Client
// Initializing API Client (Barrister)
function initApp(callback) {
var client = Barrister.httpClient({
'endpoint': '/todos',
'interfaces': ['TodoManager']
});
client.loadContract(function() {
var batch, proxy;
@laser
laser / rpc_batch_error.js
Created April 21, 2014 22:36
RPC Batch Errors
// Errors from Batch Request (Barrister)
initApp(function(err, TodoManager, BatchTodoManager) {
TodoManager.readTodos(function(err, todos) {
for (var i = 0, len = todos.length; i < len; i++) {
BatchTodoManager.deleteTodo(todos[i]['id']);
}
BatchTodoManager.send(function(err, results) {
var result, i, len;
@laser
laser / haste-boot.txt
Created April 24, 2014 17:11
haste-boot
[foo]$ haste-boot
Downloading base libs from GitHub
Sending:
GET /haste-libs/haste-libs-0.2.99.tar.bz2 HTTP/1.1
Host: valderman.github.io
Creating new connection to valderman.github.io
Received:
HTTP/1.1 200 OK
payment_frequency:
control:
creator: window.FormHelper.createInput
type: 'hidden'
serializer: (val, $root) ->
freq = $root.find('[name=income_frequency]').find(':selected').val()
if freq == 'Weekly' then 'Bi-weekly' else freq
@laser
laser / calculator.rb
Created April 25, 2014 21:17
Calculator Service
class Calculator
def add(a, b)
return a+b
end
def subtract(a, b)
return a-b
end
@laser
laser / request.json
Last active August 29, 2015 14:00
JSON-RPC 2.0 Request
{
"jsonrpc": "2.0",
"id": "Ke43jnGeQsk2z9GYvFmrax",
"method": "add",
"params": [1, 5.1]
}
@laser
laser / response.json
Created April 25, 2014 21:19
JSON-RPC 2.0 Response
{
"jsonrpc": "2.0",
"result": 6.1,
"id": "Ke43jnGeQsk2z9GYvFmrax"
}
@laser
laser / redis_client.rb
Last active August 29, 2015 14:00
Using Redis as Message Broker for RPC
#!/usr/bin/env ruby
require 'redis'
require 'securerandom'
require 'json'
# connect to Redis
redis_client = Redis.connect(url: 'redis://localhost:6379')
# request id will be used as the name of the return queue
request = {
@laser
laser / redis_server.rb
Last active August 29, 2015 14:00
Using Redis as Message Broker for RPC (Server)
#!/usr/bin/env ruby
require 'redis'
require 'json'
require './calculator'
calculator = Calculator.new
# connect to Redis
redis_client = Redis.connect(url: 'redis://localhost:6379')