Skip to content

Instantly share code, notes, and snippets.

@laser
laser / todo_manager.v2.idl
Created May 2, 2014 21:31
TodoManager V2 IDL
interface TodoManager {
// returns all Todos
readTodos() []Todo
// creates new Todo and returns it with an id
createTodo(todo TodoProperties) Todo
// updates Todo and returns it
updateTodo(todo Todo) Todo
@laser
laser / error_code.rb
Last active August 29, 2015 14:00
Barrister Error Code (Ruby)
#!/usr/bin/env ruby
# Client sends invalid parameters to server
require 'barrister'
trans = Barrister::HttpTransport.new("http://localhost:3000/v1/todos")
client = Barrister::Client.new(trans)
client.TodoManager.deleteTodo(45) # valid (45 is an int)
@laser
laser / local_barrister.sh
Created May 2, 2014 21:21
Using the Barrister Binary
barrister -j todo_manager.json todo_manager.idl
@laser
laser / hosted_compiler.sh
Created May 2, 2014 21:21
Using the Barrister Hosted Compiler
curl --data-urlencode \
idl@todo_manager.idl \
http://barrister.bitmechanic.com/run > todo_manager.json
@laser
laser / todo_manager.v1.idl
Created May 2, 2014 21:18
Todo Manager V1 IDL
struct TodoProperties {
title string
completed bool
}
struct Todo extends TodoProperties {
id int
}
interface TodoManager {
@laser
laser / crap.py
Created May 2, 2014 20:13
CALL SUPER GODADMNIT
#!/usr/bin/env python
import barrister
from bottle import run, post, request
from store import Store, RecordNotFound, UserDataInvalid, MaxTodosExceeded
from functools import wraps
import sys
import code
class TodoManager(object):
@laser
laser / python_server_errors.py
Last active August 29, 2015 14:00
Broadcasting RpcErrors through Barrister w/Python
#!/usr/bin/env python
import barrister
import sys
from bottle import run, post, request
from store import Store, RecordNotFound, UserDataInvalid, MaxTodosExceeded
from functools import wraps
def guard(*exceptions):
errors = {
@laser
laser / pip_output.log
Created April 30, 2014 22:54
pip install barrister
[dev]$ pip install barrister
Downloading/unpacking barrister
Downloading barrister-0.1.6.tar.gz
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/barrister/setup.py) egg_info for package barrister
Downloading/unpacking Markdown (from barrister)
Downloading Markdown-2.4.tar.gz (260kB): 260kB downloaded
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/Markdown/setup.py) egg_info for package Markdown
Downloading/unpacking plex (from barrister)
@laser
laser / output.sh
Created April 30, 2014 22:53
pip install barrister
[dev]$ pip install barrister
Downloading/unpacking barrister
Downloading barrister-0.1.6.tar.gz
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/barrister/setup.py) egg_info for package barrister
Downloading/unpacking Markdown (from barrister)
Downloading Markdown-2.4.tar.gz (260kB): 260kB downloaded
Running setup.py (path:/private/var/folders/lb/v0d4zb6j6z39m7vfzc4vb47h0000gn/T/pip_build_erinswenson-healey/Markdown/setup.py) egg_info for package Markdown
Downloading/unpacking plex (from barrister)
@laser
laser / rpc_auth.js
Created April 30, 2014 21:21
Barrister RPC Client w/Authentication Header
// Barrister Client Initialization
function initApp(callback) {
var client = Barrister.httpClient({
'endpoint': '/todos',
'interfaces': ['TodoManager']
});
client.loadContract(function() {
var proxy = client.proxy('TodoManager');