Scala

Liftことはじめ その7 自作validation

Liftで、validationルールの自作 備忘録 modelクラスの属性に、validationをメソッドをoverride BandSeqPlayer.scala package code.model import net.liftweb.mapper._ import net.liftweb.util._ import net.liftweb.common._ object BandSeqPlayers extend…

LiftをOPENSHIFTにデプロイ mysql設定の覚書

前回の記事のmysqlの設定に関する覚書。 OPENSHIFTのcartridgeにmysql5.5を追加すると、以下の用なメッセージが表示される。 MySQL 5.5 database added. Please make note of these credentials: Root User: mysql_user Root Password: mysql_password Datab…

LiftをOPENSHIFTにデプロイ

前述の記事のアプリが形になってきたので、デモ公開してみる。 利用するのは、RedHat社のPaas OPENSHIFTにデプロイ。 CookBookを確認するとtomcat上で可動とのこと。まず, OpenShiftにsignup。 Getting Started guide で、SSH keyの設定や、コマンドラインツ…

Liftことはじめ その6 mapper ManyToMany

前述の記事の覚書 LiftのORMでManyToManyを実装。 AlbumとTrack間で実装。(同一Trackが、複数のAlbumに収録される事実を踏まえ。regular Albumとbest AlbumのTrack共用。) まずは、Albumクラス。 model/Album.scala package code.model import net.liftweb…

Liftことはじめ その5 mapper OneToMany

前述の記事の覚書 LiftのORMでOneToManyを実装。 各trackの添付を複数指定可能にする。(必然性はないが、音楽ファイルとTab符とか) One側のTrackクラスは、OneToManyをMixIn。属性にattachesを定義。 model/Track package code.model import net.liftweb.m…

Liftことはじめ その4 アップロードファイルのサイズ制限設定

前述の記事の覚書。アップロードファイルのサイズ制限。 scala/bootstrap/liftweb/Boot.scala class Boot { def boot { … // Upload file size capped at 100Mb LiftRules.maxMimeSize = 100 * 1024 * 1024 LiftRules.maxMimeFileSize = 100 * 1024 * 1024 }…

Liftことはじめ その3 ファイルダウンロード

前述の記事の覚え書きファイルダウンロード snippet/TrackView.scala private def doList(reDraw: () => JsCmd)(html: NodeSeq): NodeSeq = { val tracks:List[Track] = Track.findAll(By(Track.albumid, getAlbumId().toLong), OrderBy(Track.seq, Ascendin…

Liftことはじめ その2 ファイルアップロード

前述の記事のための覚書。ファイルアップロード model/Track.scala package code.model import net.liftweb.mapper._ import net.liftweb.util._ import net.liftweb.common._ object Track extends Track with LongKeyedMetaMapper[Track] { override def d…

Liftことはじめ その1 開発環境

前述の記事のための覚書。1.liftセットアップ インストーラをダウンロードし、展開。 展開フォルダ配下のscala_211配下の任意のテンプレートのディレクトリに移動し、 $ ./sbt > container:start必要に応じ、./build.sbtを編集しておくこと。 今回、利用した…

LiftでCRUD

4年ほど前から、scalaを学習中。 ネットで学習をすすめるが、限界を感じ、年初からOdersky先生の本を購入し再学習中。 それと平行して、以前から気になっていた、Snippetアプローチが出来るLift frameworkを確認。 こちらやあちらを確認し、生産性がよいのか…

Playframework 2.4 Anormでleft outer join

前回に続き、playframeworkのdataアクセス。 Anormについて学習。テキストはこちら。 AnormはORMではなく、SQLを記述しコレクションに格納する。 SQLなので、テーブルのjoinも、もちろん可能。 ただし、left outer joinで結合される側のテーブルにデータが存…

Playframework 2.4 slickでManyToMany

引き続き、PlayFramework2.4を学習中。 今回はORM(Object Relation Mapper)について。 2.1頃から、ORMとしてSquerylを使用していたが、今回PlaySlickを試してみることにした。 設定方法は、こちらを参照。利用方法も記載されているが、断片的なコードなので…

Akka-Actor サンプリング

Java8がリリースされたのを期に、こちらを参考にしながらJVMの並行性について学習。 引き続き、並列、平行、分散処理を簡単に記述するためのScalaのライブラリ:Akkaに ついて学習。 とてもわかりやすいサンプルで学習を始めるも、仕様変更のためコンパイルエ…

playframework scalaのリフレクション

先のブログのプロジェクトの機能追加として、CSVファイルから、部品表(PartsStructureテーブル)を登録する機能について検討。 CVSファイルを、play.api.mvc.MultipartFormData.FilePartで取り込む。 取り込んだファイルをjava.io.FileInputStream,scala.io…

Playframework でPDM その2

先のブログのプロジェクトの続きです。 light weightな設計変更機能も追加しました。 プロジェクトホーム デモサイト wiki 予定では、設計変更の一括登録を実装予定です。

PlayframeworkでPDM

1年数カ月ぶりのブログ更新です。 一年以上何もしていなかった訳ではないのです。昨年は、PlayFramework1.2(java)を集中的に学んでいました。 PlayFramework2も、検討していたのですが ドキュメントの豊富さの優位性より1系を選びました。年が明けて、時間…