Skip to content

Instantly share code, notes, and snippets.

View r7kamura's full-sized avatar

Ryo Nakamura r7kamura

View GitHub Profile
import EventPublisher from '../../shared/libraries/event-publisher'
export default class State extends EventPublisher {
constructor() {
super();
this.selectedSheet = null;
this.sheets = [];
}
addSheet(sheet) {
import domainEventPublisher from '../singletons/domain-event-publisher'
import EventLogger from '../libraries/event-logger'
import ipc from 'ipc'
import keyboardEventPublisher from '../singletons/keyboard-event-publisher'
import SheetCreator from '../domain-models/sheet-creator'
import SheetGroupLoader from '../domain-models/sheet-group-loader'
import SheetLoader from '../domain-models/sheet-loader'
import SheetMover from '../domain-models/sheet-mover'
import SheetUpdater from '../domain-models/sheet-updater'
import State from '../domain-models/state'
import Cycle, { Rx } from '@cycle/core'
import { h, makeDOMDriver } from '@cycle/dom';
const intent = (DOM) => {
return {};
};
const model = (actionMap) => {
return new Rx.Subject().startWith(1);
};
import { makeDOMDriver } from '@cycle/dom';
import Cycle from '@cycle/core'
import intent from './intent'
import model from './model'
import view from './view'
Cycle.run(
({ DOM }) => {
return { DOM: view(model(intent(DOM))) };
},
import KeyStringDetector from 'key-string'
const detector = new KeyStringDetector();
function changeModeIntent(DOM) {
const documentStream = DOM.select('.header-format-switcher-document-button').events('click').map(() => 'document');
const slideStream = DOM.select('.header-format-switcher-slide-button').events('click').map(() => 'slide');
const changeModeStream = documentStream.merge(slideStream);
return { changeModeStream };
}
import { Rx } from '@cycle/core'
import Fetcher from 'stackable-fetcher'
export default function makeFetcherDriver(fetcher = new Fetcher()) {
return (request$) => {
return request$.map((request) => {
return Rx.Observable.fromPromise(
fetcher[request.method.toLowerCase()](
request.url,
request.parameters,
import { Rx } from '@cycle/core'
import { h } from '@cycle/dom'
import CodeMirror from 'codemirror'
class CodeMirrorRenderer {
constructor(events) {
this.events = events;
}
hook(node, propertyName, previousValue) {
$ gem i json_world
Fetching: json_world-0.2.2.gem (100%)
Successfully installed json_world-0.2.2
1 gem installed
$ pry -r json_world
[1] pry(main)> class A
[1] pry(main)* include JsonWorld::DSL
[1] pry(main)* property(:x, type: Array, items: { type: String })
[1] pry(main)* end
=> [#<JsonWorld::PropertyDefinition:0x007f9fffa9bb08
var _ = require('lodash');
var Rx = require('rx');
(function () {
/**
* @param {HTMLElement} element
* @return {Rx.Observable}
*/
function createDeactivate$(element) {
return Rx.Observable.fromEvent(element, 'blur');
class Community < ActiveRecord::Base
# @note https://www.w3.org/TR/AERT#color-contrast
# @return [false, true]
def has_dark_header_background_color?
red, green, blue = header_background_color_hex.scan(/../).map { |hex| hex.to_i(16) }
(red * 299 + green * 587 + blue * 114) < 125_000
end
end