Skip to content

Instantly share code, notes, and snippets.

View koji-k's full-sized avatar

koji koji-k

  • Germany
View GitHub Profile
@koji-k
koji-k / trait_private_field_sample.groovy
Created January 26, 2017 13:36
Groovyのtraitでprivateフィールドのメモ
trait A{
private Integer hoge = 0
def inc() {
hoge+=1
}
}
class B implements A {}
def obj1 = new B()
@koji-k
koji-k / sample.groovy
Created January 20, 2017 09:04
FactoryMethodパターンのメモ
// Factory?
interface DataStoreCreator {
def create() {
DataStore ds = factoryMethod()
}
abstract DataStore factoryMethod()
}
class ConcreteDatabaseCreator implements DataStoreCreator {
DataStore factoryMethod() {
@koji-k
koji-k / add-vue.js-to-existing-grails.md
Last active January 18, 2017 12:31
既存のGrailsアプリケーションにVue.jsを組み込むワークアラウンド

前提条件既

既に存在するGrailsアプリケーションにVue.jsを導入し、単一ファイルコンポーネントをNPMなどの外部ツールを使わずに擬似的に実現するワークアラウンド。

普通のGrailsのテンプレートファイルを用意する。

これが所謂Vue.jsの単一ファイルコンポーネントに相当。

templates/vue/_index.gsp

Grailsのメソッドの中でnewする場合のテスト

まず、前提条件として、GrailsでHTTPクライアントを利用する(もちろんテストも書く)
この素晴らしい記事の中で、ForecastClientというクラスがあって、その単体テストの書き方も詳細に述べられている。
ここで、今自分が疑問に思っているのが、このForecastClientを利用するメソッドがあるとして、そのメソッドをどのようにUnitテスト書けばいいのか、という点。例えば以下の普通のGrailsのService。

@Transactional
class Hoge {

 def some() {
下記コメント参照。
@koji-k
koji-k / memo.md
Last active March 17, 2016 13:38
Grails2.4にテストを追加していく方針

前提

まだテストは無い。アプリケーションは本番環境で動いている。

方針

対象 テスト種別
Controller Unitテスト ----> 削除してFunctionalテストwithGebに移行?
Service Unitテスト ----> Integrationテスト
Domain Unitテスト(パラメータとかのテスト)
@koji-k
koji-k / sample.groovy
Last active March 16, 2016 13:25
GrailsのServiceの中で別のServiceを使うメソッドのテスト
class UrlBuilderService {
def translationService
def hoge() {
println "start"
println translationService.debug()
println "end"
}
}
}
@koji-k
koji-k / groovy-closure-check.groovy
Created December 10, 2015 08:54
Groovyのクロージャーチェック
// 通常のコード内
int x = 100
//クロージャーの定義
Closure toDoubled = {
x *= 2
}
assert x == 100
toDoubled()
@koji-k
koji-k / trampoline_sample.groovy
Created October 13, 2013 15:08
Groovyでtrampolineを使って末尾再帰最適化 ref: http://qiita.com/saba1024/items/b84cab1496db4bff9e1a
def split = 2
// 普通の再帰
def clj1 = { List list ->
if(!list) {return []}
else [list.take(split)] + call(list.drop(split))
}
// trampolineを使って末尾再帰最適化!
def clj2 = { List list, List result = [] ->
@koji-k
koji-k / file1.txt
Created October 11, 2013 20:43
Groovyでカレンダーを生成する方法 ref: http://qiita.com/saba1024/items/d1a12314829116b6d2ab
2013/12
Sun Mon Tue Wed Thu Fri Sat
01 02 03 04 05 06 07
08 09 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 01 02 03 04