Skip to content

Instantly share code, notes, and snippets.

@ryoppy
ryoppy / BenchmarkSpec.scala
Last active December 14, 2015 00:49
ベンチマークを簡単にするUtilのテスト
package util
import org.specs2.mutable._
class BenchmarkSpec extends Specification with Before with Benchmark {
def before() = isPrint = false
"loop" should {
"10 times" in {
@ryoppy
ryoppy / Benchmark.scala
Last active December 14, 2015 00:49
ベンチマーク用Util。
package util
import compat.Platform
/**
* ベンチマーク用trait
*
* 継承して、loop(ループ回数, 実行するFunction) してあげると
* 指定回数実行して、結果がprintされる。
*
@ryoppy
ryoppy / snippets.scala
Last active December 15, 2015 02:09
いろんなスニペット置き場
// SeqをMapに
// Seq(1,2,3) => Map(1 -> 2, 2 -> 3, 3 -> 4)
Seq(1, 2, 3).flatMap { i =>
Map(i -> (i + 1))
}.toMap
// SomeにnullいれてもNoneにはならない
Some(null) == None // false
Option(null) == None // true
@ryoppy
ryoppy / gist:5193936
Created March 19, 2013 05:37
specs2でクラス内のテストをタグで指定して実行する方法

specs2でテストでtagをつけて

"hugehuge" in {
  //
} tag("a")

指定して実行

@ryoppy
ryoppy / ZipSample.scala
Created March 21, 2013 08:53
Zipが便利すぎたのでメモ
val pp1 = Seq(1, 2) zip Seq(3, 4)
println(pp1)
// List((1,3), (2,4))
case class Image(width: Seq[Int], height: Seq[Int])
val images = Seq(Image(Seq(200, 300), Seq(210, 310)), Image(Seq(400, 500), Seq(510, 610)))
val pp2 = images.flatMap { b =>
b.width zip b.height
@ryoppy
ryoppy / CakePattern.scala
Created May 1, 2013 05:57
traitで子のプロパティなど参照したいとき
abstract class Interface(_id: Int) {
def id: Int = _id
}
trait Like {
self : Interface =>
def get: Int = this.id
}
trait Param {
@ryoppy
ryoppy / getQueryParams.js
Last active March 28, 2019 17:31
Parse query string. use Underscore.js.
/**
* Parse query string.
* ?a=b&c=d to {a: b, c: d}
* @param {String} (option) queryString
* @return {Object} query params
*/
getQueryParams: function(queryString) {
var query = (queryString || window.location.search).substring(1); // delete ?
if (!query) {
return false;
@ryoppy
ryoppy / file0.js
Created July 11, 2013 09:14
オブジェクトのキーでアルファベット順にソート ref: http://qiita.com/ryoppy@github/items/ee1cd051cce4c6668899
var params = {b: 1, a: 5, c: 2};
_.pick(params, _.keys(params).sort()); // {a: 5, b:1, c:2}
@ryoppy
ryoppy / file0.js
Created July 11, 2013 13:34
オブジェクトをアルファベット順でGETパラメータに変換 ref: http://qiita.com/ryoppy@github/items/4373bba239ae7320181f
var obj = {b: 1, a: 3, c:2};
_.map(_.keys(obj).sort(), function(key) {
return key + '=' + obj[key];
}).join('&');
// a=3&b=1&c=2
@ryoppy
ryoppy / file0.js
Created July 17, 2013 22:51
serializeArrayをname:valueのオブジェクトに変換 ref: http://qiita.com/ryoppy@github/items/0ceb0c19b92da34c7ce1
/**
* $formのデータをkey:valueで取得
* @param {jQuery} $form
* @return {Object} {name: "value", ...}
*/
getValues: function($form) {
return _.chain($form.serializeArray())
.map(function(obj) { return [obj.name, obj.value] })
.object()
.value();