Skip to content

Instantly share code, notes, and snippets.

View clalimarmo's full-sized avatar

Carlos Lalimarmo clalimarmo

View GitHub Profile
@clalimarmo
clalimarmo / falcor-subscribable-model.js
Created March 1, 2016 23:25
subscribable wrapper for falcor models, for reactive components
const falcor = require('falcor');
const Rx = require('rxjs');
//FalcorSubscribableModel
module.exports = function(modelOptions) {
modelOptions = modelOptions || {};
const self = {};
const modelSubject = new Rx.BehaviorSubject();
@clalimarmo
clalimarmo / tasks_app.jsx
Created September 15, 2015 16:52
Deep Linking with React + Flux, main controller view, step 1
TasksApp = React.createClass({
// all component state originates from TaskStore, upstream
getInitialState: function() {
return {
selectedTask: TaskStore.selectedTask(),
tasks: TaskStore.tasks(),
};
},
// and when the TaskStore's state changes, we update this component's
@clalimarmo
clalimarmo / design_spec.js
Created November 21, 2015 03:48
Gulp tasks for building a design spec static site
var gulp = require('gulp');
var webserver = require('gulp-webserver');
var fileInclude = require('gulp-file-include');
/*
* Design spec build tasks:
*
* Compile and serve a design spec (style guide) site.
*/
gulp.task('dspec', ['dspec:watch'], function() {
@clalimarmo
clalimarmo / collection_json_cache.js
Last active November 5, 2015 16:32
Collection+JSON in-memory caching
const Cache = function(deps) {
const self = {};
const requested = {};
self.fetch = function(href) {
requested[href] = requested[href] || new Promise((resolve, reject) => {
const collection = deps.Collection();
collection.fetch(href).done(() => {
resolve(collection);
});
@clalimarmo
clalimarmo / filters.js
Last active October 21, 2015 20:22 — forked from gbau/filters.js
var appliedFilters = {};
function anyFilterApplied() {
return Object.keys(appliedFilters).length > 0;
}
function applyFilter(filter, key) {
appliedFilters[key] = filter;
}
@clalimarmo
clalimarmo / routes.rb
Created September 15, 2015 16:58
Deep Linking with React + Flux, example Rails routes definition
class ExcludeXhr
def matches?(request)
!request.xhr?
end
end
Rails.application.routes.draw do
constraints(ExcludeXhr.new) do
root 'home#index' # home/index just renders our single page client-side app
get '*path', to: "home#index", via: :all
const BookStore = function(deps) {
const self = Coherence(deps);
self.handleAction('search-book', searchBook);
return self.fluxSafe();
function searchBook(payload) {
deps.books.fetch(payload.id).then(function(response) {
self.setData('book', response);
})
}

Setup

  • bla
  • blabla
  • bar

gem install blablabla

Run tests

@clalimarmo
clalimarmo / extension-patterns.js
Last active October 2, 2015 18:25
How things are done everywhere. Versus how I want them to be done.
// tired of this extension pattern
var Cow = AnimalFactory({
getVoice: function() { return 'moo'; }),
numLegs: 4,
name: 'Cow',
})
// propose this one instead
var MutantCow = AnimalFactory.extend()
.getVoice(function() { return 'moo'; })
@clalimarmo
clalimarmo / app_init.js
Created September 15, 2015 18:52
Deep Linking with React + Flux, dispatching an action for app initialization on page load
// example app initialization
$(function() {
Dispatcher.dispatch({
type: 'initialize app',
path: window.location.pathname,
});
});