Skip to content

Instantly share code, notes, and snippets.

View e-jigsaw's full-sized avatar

jigsaw e-jigsaw

View GitHub Profile

今日のコミット量を出力するスクリプト

https://github.com/e-jigsaw/cqty

前々から、一日の終わりぐらいにその日のコミット量がわかれば達成感あってよさげだな〜、とおもっていたんだけどなかなかどうやればいいのかわからなかった。

なので、node.js で泥臭く git log から情報を呼んで計算をしています。もっといい方法あったら教えてください。git のコマンドでなんとかならないもんかなー。

あと node.js で CLI のスクリプトをつくる手法がまだあまりよくわかってないのでそのあたりもあとで調整したい。

今日は割と Spike な branch ばかりつくっていたので、その備忘録などを兼ねて。

supertest

https://github.com/visionmedia/supertest

supertest は express の app のテストを書くことができるようになる。今やってるプロジェクトはそれぞれのユニットテストはテストファーストで書きながら TDD よろしくサイクルさせていたのだけれど肝心の結合部分であるところの app.js はノンテストっていう状況だった。

そのせいで、デグレてしまうこともあったのでいい加減この結合部分もテスト書かなくては!と使命感に駆られて書いた。

jsのstring.prototypeとかを拡張して使うのってどう思う?good partsでは推奨されてるみたいなんやけど、、、

http://twitter.com/takanamito/status/335424369155272704

禁忌だとおもう。Objectprototype拡張するようなモジュールはちょっと使いたくないかな、っておもっちゃうぐらい。

じゃあ、どんな感じで書けばいいの

めんどくさいのでCoffeeで書いてみた、jsもそれっぽく書けばいいんだとおもう(適当) たとえば、Arrayの拡張なんかはすごい簡単で

{EventEmitter} = require "events"
class Lib extends EventEmitter
constructor: (@arg1, @arg2)->
exec: =>
async.get (err, result)->
if err?
@emit "error", new Error err
else
module.exports = (arg1, arg2, callback)->
async.get (err, result)->
if err?
callback err
else
callback null, result
@e-jigsaw
e-jigsaw / ruby2.0.0+rails4使ってみたい.md
Created February 28, 2013 17:19
ruby2.0.0+rails4使ってみたい

ruby2.0.0+rails4使ってみたい

WEB+DB73号に触発されたクチです。rubyもなんかメジャーバージョン上がったし、railsもメジャーバージョン上がったし今こそ好機なのでは!?...と思い立ちました。

rvmのインストール

以前、rvmを使ってみたことがあったのでまずはrvmのインストール...をしようとおもって

$ curl -L https://get.rvm.io

Unknown SSL protocol error in connection なるエラーが出てインストールできなかったので

@e-jigsaw
e-jigsaw / app.coffee
Last active December 13, 2015 17:09
Chrome extensionsでkeydown eventを発火させたいのだけれど、どうにも発火してくれない
some "event", ->
evt = document.createEvent "KeyboardEvent"
evt.initKeyboardEvent "keydown", true, true, null, "J".charCodeAt(0), false, false, false, 0
document.dispatchEvent evt # 何も起きない
@e-jigsaw
e-jigsaw / pr.md
Created February 6, 2013 16:47 — forked from piscisaureus/pr.md

Locate the section for your github remote in the .git/config file. It looks like this:

[remote "origin"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = [email protected]:joyent/node.git

Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:

div(data-bind="foreach: ary")
div(data-bind="foreach: $data")
div(data-bind="text: $data()")
do ->
AppViewModel = ->
this.some
...
this.hoge
...
this # ←これがないとbindしてくれない
ko.applyBindings new AppViewModel()