Skip to content

Instantly share code, notes, and snippets.

View ritch's full-sized avatar

Ritchie Martori ritch

  • Fremont, California
View GitHub Profile
@ritch
ritch / example.sh
Last active August 29, 2015 13:59
From 0 to MongoDB in 30 seconds...
# Run the following steps in your terminal...
# make sure you have node and mongo installed
npm install strong-cli
# create a loopback project
slc lb project mongo-example
cd mongo-example
# create a loopback model
@ritch
ritch / ex.js
Last active September 6, 2023 04:27
What is the best way to document complex / dynamic objects as arguments to a function?
/**
* Below are several examples of methods that are difficult to clearly annotate with JSDoc annotations.
*/
/**
* @param {Object} people An index of people keyed by a person's name
* @returns {Object} map An index of zipcodes keyed by a person's name
*/
function find(people) {
@ritch
ritch / example.js
Last active August 29, 2015 13:56
Micro Processes
var MicroProcess = require('../lib/micro-process');
var loopback = require('loopback');
var app = loopback();
app.use(function(req, res, next) {
var p = new MicroProcess([req.method, req.url].join(' '));
p.run(next);
p.on('error', function(err) {
console.error(err);
# setup an office supply store
# deny everything by default
$ slc lb acl --deny --model product --everyone
# allow customers to browse the products
$ slc lb acl --allow --model product --everyone --read
# only allow the store owners to modify or delete them
$ slc lb acl --allow --model product --owner --all
@ritch
ritch / user.java
Last active December 31, 2015 23:29
LoopBack LBUser in iOS
// UserRepository and User do not exist in the sdk
UserRepository repository = adapter.createRepository(UserRepository.class);
HashMap attributes = new HashMap<String, Object>();
attributes.put("email", "me@domain.com");
attributes.put("password", "secret");
User me = repository.createModel(attributes);
me.save(new Model.Callback() {
@Override
public void onSuccess() {
@ritch
ritch / co-loopback.js
Last active June 8, 2016 04:31
LoopBack w/ a co-routine based API
var co = require('co');
var thunk = require('thunkify');
var loopback = require('loopback');
var memory = loopback.memory();
var product = memory.createModel('memory');
// thunkify the loopback model
thunkify();
// create some products in parallel
// DAO
function create(obj, callback) {
var Model = this;
var ctx = new EventEmitter();
ctx.data = obj;
ctx.callback = callback;
Model.emit('create:start', ctx);
@ritch
ritch / 0-view.html
Last active December 28, 2015 11:38
An end to end example integrating LoopBack, Angular, and MySQL. Run the full app - http://loopback-foodme.herokuapp.com View the source - http://github.com/ritch/loopback-foodme
<!--
An Angular View to render a list of Restaurants
-->
<table class="table table-hover table-striped" ng-controller="RestaurantsController">
<tr ng-repeat="restaurant in restaurants">
<td>
<a href="#/menu/{{restaurant.id}}">
<img class="img-rounded pull-left" ng-src="img/restaurants/{{restaurant.shortName}}.jpg">
<b>{{restaurant.name}}</b>
</a>
@ritch
ritch / RestaurantsController.js
Created November 16, 2013 00:52
Connecting Angular to MySQL through LoopBack
app.controller('RestaurantsController',
function RestaurantsController(Restaurant) {
$scope.restaurants = Restaurant.query(filterAndSortRestaurants);
});
@ritch
ritch / bacn.js
Last active December 27, 2015 04:48
BACN + LoopBack Example
// ... imagine backbone boilerplate here... pointing to localhost:3000
var Product = Backbone.Model.extend({
url: '/products'
});
/* would be nice if I could just include this here...
Product.validatesLengthOf('name', {
min: 3,