Skip to content

Instantly share code, notes, and snippets.

View snewcomer's full-sized avatar

Scott Newcomer snewcomer

View GitHub Profile
@snewcomer
snewcomer / closest-kata.ex
Created February 7, 2019 05:11
closest kata
defmodule Closest do
def closest(""), do: [{}, {}]
def closest(s) do
s
|> String.split
|> Enum.map(&String.to_integer/1)
|> Enum.with_index
|> Enum.map(&weight/1)
|> Enum.sort(&sort/2)
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.intersectionObserverAdmin = factory());
}(this, (function () { 'use strict';
function unwrapExports (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;
}
import Ember from 'ember';
export default Ember.Component.extend({
tagName: ''
});
@snewcomer
snewcomer / gist:74b7e8b469175fdb369c51d8ca9041d7
Created August 16, 2018 23:16
deep recursive object comparison
/**
* determine if existing elements for a given `root` || viewportDescriptor have the same observerOptions
* We need to test this because two elements may be using the same `root` but have different observerOptions
* i.e. viewportTolerance bottom: 500px vs. bottom: 0px
* We only compare primitive types and objects; not arrays or functions
*
* @method _hasSimilarElement
*/
_hasSimilarElement(observerOptions, elements) {
return elements.some((testElement) => {
@snewcomer
snewcomer / node-query-class-pattern.js
Created May 28, 2018 18:33
node query class pattern
/* global Node */
import { assert } from 'ember-debug';
import { fireEvent, focus, matches } from '../system/synthetic-events';
export default class NodeQuery {
static query(selector, context = document) {
assert(`Invalid second parameter to NodeQuery.query`, context && context instanceof Node);
return new NodeQuery(toArray(context.querySelectorAll(selector)));
}
import Ember from 'ember';
let i = 0;
export default Ember.Component.extend({
classNames: ['mouse-leave'],
classNameBindings: ['isOpened:is-opened'],
left: [],
click() {
set(this, 'isOpened', true);
@snewcomer
snewcomer / controllers.application.js
Created February 22, 2018 18:12
Scroll Top after Load
import Ember from 'ember';
const images = ["jarjan", "aio___", "kushsolitary", "kolage", "idiot", "gt"];
const models = [...Array(5).fill().map(() => `https://s3.amazonaws.com/uifaces/faces/twitter/${images[(Math.random() * images.length) | 0]}/128.jpg`)];
const otherModels = [...Array(10).fill().map(() => `https://s3.amazonaws.com/uifaces/faces/twitter/${images[(Math.random() * images.length) | 0]}/73.jpg`)];
import Ember from 'ember';
export default Ember.Component.extend({
didInsertElement() {
this.destroy();
}
});
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
someAction() {
console.log('Clicked!');
}
}
});