Skip to content

Instantly share code, notes, and snippets.

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

Captain Emo craftgear

🏠
Working from home
View GitHub Profile
@craftgear
craftgear / init_cypress.md
Last active June 15, 2021 08:13
Cypressを導入してe2eテストをかけるようにするまでにやったこと

Cypress導入手順

インストール

  1. npm install cypress --save-dev
  2. npx cypress open →自動でcypress.jsonとcypress用のディレクトリが作られる
  3. cypress.json に設定を追加する
{
  "baseUrl": "http://localhost:8080",
  "viewportWidth": 1280,
  "video": true,
@craftgear
craftgear / beyond_for_loop.js
Last active October 6, 2018 04:29
#SurviveJS 05 LT「forループを越えて」
const double = x => x * 2;
const over5 = x => x > 5;
const a = [1, 2, 3].map(double).filter(over5);
console.log('********* a', a);
import * as R from 'ramda';
const times2Over5 = R.compose(
R.tap(console.log),
@craftgear
craftgear / dummy_todos.json
Last active August 12, 2018 08:09
dummy_todos.json
{
"data": [
{
"id": 1,
"title": "Reactコンポーネントを作れるようになる",
"done": false,
"created_at": "2018-08-08 12:00:00",
"started_at": "",
"done_at":""
},
@craftgear
craftgear / permutate.js
Last active May 14, 2018 12:30
Permutation with recursion
const insertItem = (xs, index, item) => [...xs.slice(0, index), item, ...xs.slice(index)];
const range = number => [...Array(number).keys()];
const permutate = (xs, accum = []) => {
const [head, ...tail] = xs;
if (!head) {
return accum;
}
return accum.length === 0
@craftgear
craftgear / pad.js
Last active November 25, 2017 02:52
leftPad, rightPad, oh whatever.
const pad = (leftOrRight = 'left') => maxLength => char => value => {
const strValue = typeof value === 'number' ? value.toString() : value;
if (strValue.length >= maxLength) {
return strValue;
}
if (typeof maxLength !== 'number') {
throw new Error('maxLength should be a number');
}
const padding = Array(maxLength - strValue.length)
@craftgear
craftgear / splitByRegexp.go
Last active November 20, 2017 03:23
split a string into a slice of strings by regexp (goで正規表現を使って文字列を分割する)
func splitByRegexp(str string, separator string) []string {
normalRe := "[^%s]*[%s]"
rawRe := `[^%s]*[%s]`
var re *regexp.Regexp
if strings.Index(separator, `\\`) > -1 {
re = regexp.MustCompile(fmt.Sprintf(normalRe, separator, separator))
} else {
re = regexp.MustCompile(fmt.Sprintf(rawRe, separator, separator))
}
async (callback) => {
const { err, ...result } = await asyncCode().catch(e => ({ err: e }));
if (err) {
callback(err);
return;
}
callback(null, result);
};
async (callback) => {
try {
const result = await asyncCode();
callback(null, result)
}
catch (e) {
callback(e)
}
}
async (callback) => {
const result = await asyncCode();
callback(null, result)
}
@craftgear
craftgear / gist:5669101
Last active December 17, 2015 20:39
expressでミドルウェアもしくはイベントハンドラでセッションの値を参照する
//ミドルウェアでやる場合
app.configure(function(){
//・・・(略)・・・
app.use(function (req, res, next) {
app.locals.message = req.session.message;
next();
});
//・・・(略)・・・
});