The popular open-source contract for web professionals by Stuff & Nonsense
- Originally published: 23rd December 2008
- Revised date: March 15th 2016
- Original post
| // to see it in action live, see https://goo.gl/EM9EPp | |
| import {converge, objOf, toUpper, map, compose, reduce, merge, replace, toString, values} from 'ramda' | |
| /** | |
| * upperKey :: [string] -> [{STRING: string}] | |
| * @example upperKey(arr) === [{A: 'a'}, {B: 'b'}, ...] | |
| */ | |
| const upperKey = converge(objOf, [toUpper, Symbol]) | |
| /** |
| # https://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit | |
| # Switch to the master branch and make sure you are up to date. | |
| git checkout master | |
| git fetch # this may be necessary (depending on your git config) to receive updates on origin/master | |
| git pull | |
| # Merge the feature branch into the master branch. | |
| git merge feature_branch | |
| # Reset the master branch to origin's state. |
| # See https://hub.docker.com/r/ocaml/opam/ | |
| FROM ocaml/opam | |
| # Get core set up | |
| RUN opam depext -i core | |
| # Do some extra stuff to make cryptokit happy | |
| RUN opam depext conf-zlib.1 && opam depext conf-gmp.1 && opam install cryptokit | |
| # Install all the packages the book uses, including the utop REPL |
| import React from 'react' | |
| import ReactCSSTransitionGroup from 'react-addons-css-transition-group' | |
| import { | |
| BrowserRouter as Router, | |
| Route, | |
| Link, | |
| Switch | |
| } from 'react-router-dom' | |
| const BasicExample = () => ( |