import
文をSettingKey
かTaskKey
でカスタマイズ可能にしたい- 現状は固定
- やりたかったら、それぞれのテストに明示的に書くか、スコープに入るように、テストが置かれるであろうパッケージオブジェクトに色々置くしか無い?
- 拡張ポイントをどこにするか問題
- あくまで個人的意見としては、"sbt pluginの拡張ポイントはできるだけ汎用的" になっているべきだと思う
- 言い換えると、あとからKeyをあまり増やしたくない。(keyが汎用的すぎて、それを設定するユーザー側が)多少面倒だとしても、少ない汎用的なKeyさえ使えば、とにかくなんでも設定可能
- 汎用的にするには、やはり
Key
は関数になっているべき - なので、最初に思いついたのは
それぞれのテスト => Import文
という関数のKeyを作る それぞれのテスト
とは、現状では ParsedDoctest だろう- つまり
ParsedDoctest => Seq[String]
?
- Web Server: Play (framework) or http4s (library)
- Actors: akka
- Asynchronous Programming: monix (for tasks, reactors, observables, scheduler etc)
- Authentication: Silhouette
- Authorization: Deadbolt
- Command-line option parsing: case-app
- CSV Parsing: kantan.csv
- DB: doobie (for PostgreSQL)
Copyright © 2016-2018 Fantasyland Institute of Learning. All rights reserved.
A function is a mapping from one set, called a domain, to another set, called the codomain. A function associates every element in the domain with exactly one element in the codomain. In Scala, both domain and codomain are types.
val square : Int => Int = x => x * x
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.joda.time._ | |
import monix.execution._ | |
import monix.execution.Scheduler.Implicits.global | |
import java.util.concurrent.TimeUnit | |
import scala.util.control.NonFatal | |
def scheduleOncePerDay(time: LocalTime, now: DateTime = DateTime.now())(cb: () => Unit) | |
(implicit s: Scheduler): Cancelable = { | |
val nextTick = { |
There exist several DI frameworks / libraries
in the Scala
ecosystem. But the more functional code you write the more you'll realize there's no need to use any of them.
A few of the most claimed benefits are the following:
- Dependency Injection.
- Life cycle management.
- Dependency graph rewriting.