Rubyっぽく楽にIO処理を書けるライブラリScaruby 0.3をリリースしました
Scalaは標準IOライブラリが非常に貧弱な言語です。scala.io
はまともに使えるものではありませんし、JDKのライブラリのIOを使うのも面倒です。そこで、サードパーティのIOライブラリを使うことになります。そこで、いくつかサードパーティのIOライブラリを見てみたところ、いずれも自分のやりたいことをぱっとできるように思えなかったので、自分で作ってみることにしました。
なお、better-filesは、自分の要求に一番近かったですが、java.ioやjava.nioがインタフェース部に露出しているのがあまり好みではありませんでした。
そこで、
を目標として、新しいライブラリScarubyの開発を始めました(Scala + Rubyというネーミングです)。これまでで、とりあえず簡単なファイルI/OやURLからのテキスト読み込みなどが動作するようになったので、公開することにしました。
サンプルプログラムのいくつかは以下のサイトに置いてありますが、ドキュメントの充実はまだまだこれからということです。
たとえば、次のようなプログラムが動作します。
import com.github.scaruby._ val content = SFile.read("file.txt")
import com.github.scaruby._ val input = "Hello, World!" val encoded = SBase64.encode64(input.getBytes("UTF-8")) val decoded = new String(SBase64.decode64(encoded), "UTF-8") assert(input == decoded)
import com.github.scaruby._ val content = for { r <- SURL("https://srad.jp/").openReader } r.readAll() println(content)
import com.github.scaruby._ println(SURL("https://srad.jp").read())
import com.github.scaruby._ SFile("file.txt").read()
import com.github.scaruby._ SFile("output.txt").write("HogeFuga")
今後の予定としては、
などを考えています。要望があればIssueに上げていただければ励みになります。