Skip to content

Instantly share code, notes, and snippets.

View StephanHoyer's full-sized avatar
🏠
Working from home

Stephan Hoyer StephanHoyer

🏠
Working from home
View GitHub Profile
'use strict';
var m = require('mithril');
var t = require('client/utils/translate');
var vagueTime = require('vague-time');
var l16n = require('client/utils/l16n');
function assignValue(obj, objAttr) {
return function (event) {
@StephanHoyer
StephanHoyer / elasticsearch-example.js
Created September 29, 2015 10:56
Simple example how to use elastic search with node.js
'use strict';
var elasticsearch = require('elasticsearch');
var Promise = require('bluebird');
var log = console.log.bind(console);
var client = new elasticsearch.Client({
host: 'localhost:9200',
log: 'trace'
@StephanHoyer
StephanHoyer / tooltip.js
Last active September 22, 2017 06:25
tooltip component
'use strict';
function noop(){}
var contentView = noop;
var elPos = { left: 0, bottom: 0};
var tooltip = {
show: function(content, options) {
return function(event) {
@StephanHoyer
StephanHoyer / filterinput.js
Created May 20, 2015 10:07
Select2-like mithril input
'use strict';
var m = require('mithril');
var icons = require('client/utils/icons');
var remove = require('lodash/array/remove');
var transform = require('lodash/object/transform');
var last = require('lodash/array/last');
var code = require('yields-keycode');
function sameAs(filterA) {
'use strict';
var bus = require('./bus');
var throttle = require('lodash/function/throttle');
function getOffsetX(event) {
return event.offsetX || event.layerX;
}
function getOffsetY(event) {
const directions = [[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1]];
function evolve(currentCells) {
const equalTo = (a) => (b) => a[0] === b[0] && a[1] === b[1];
const isCurrentlyAlive = (cell) => currentCells.some(equalTo(cell));
const add = (a) => (b) => [a[0] + b[0], a[1] + b[1]]
const neighboursOf = (cell) => directions.map(add(cell));
const notIn = (list) => (item) => !list.some(equalTo(item));
const countNeighbours = (cell) => neighboursOf(cell).filter(isCurrentlyAlive).length;
@StephanHoyer
StephanHoyer / github.js
Last active February 13, 2024 14:19
Commiting multiple files to github over API
'use strict';
var Octokat = require('octokat');
var extend = require('lodash/object/assign');
var defaults = {
branchName: 'master',
token: '',
username: '',
reponame: ''
"use strict";
/*
Chainable formatters
Usage:
function trim(value) {
return value.trim();
}
"use strict";
/*
Formatters
Usage:
f.append(f.trim(' foo '), 'bar') > foobar
With composition
@StephanHoyer
StephanHoyer / inlineedit.js
Last active October 13, 2015 16:46
Inline edit mithril component
'use strict';
var m = require('mithril');
var extend = require('lodash').extend;
var setFocus = require('../util/viewhelper').setFocus;
var keymage = require('keymage');
function noop(){}
function addClass(el, className) {