LoginSignup
8
8

More than 5 years have passed since last update.

【個人メモ】Square 製のバリデーションライブラリ lgtm

Posted at

LGTMというデータ検証ライブラリ

square/lgtm

インターネッツをさまよってたら見つけたので、触ってみた。
Square製。

LGTMは何をするのか

フォームなどに入力されたデータの検証を行うライブラリ。
実際に弄ってみよう。

とりあえず弄ってみる

lgtmのwiki(github)のリンク先にあるjsbinのテンプレがある。
それを元に適当な入力フォームをjsbinに作った。

スクリーンショット 2014-04-11 20.31.25.png

フォームの入力内容をチェックする

例で作成したフォームに何も入力せずに"Sign up"ボタンを押してみる。

スクリーンショット 2014-04-11 20.32.53.png

エラー文言が出た。

続けて、first nameに値を入力して"Sign up"ボタンを押してみる。

スクリーンショット 2014-04-13 20.24.39.png

first nameは、値が入力されていることが必須(required)にしている。

続けて、適当なメールアドレスをmail addres formに入力する。

スクリーンショット 2014-04-13 21.37.41.png

emailメソッドを使って検証している。
emailメソッドはフォーマット検証をしている。
hoge@hogeは、メールアドレスフォーマットとして不正なため、通らない。
hoge@hoge.com として入力し直してみる。

スクリーンショット 2014-04-13 21.50.42.png

メールアドレス形式のフォーマットに合致しているため、
フォーマット検証を通っている。

検証内容のカスタマイズも可能

whenメソッドを使って値の検証方法を
自分で作成したfunctionを利用してカスタマイズすることもできる。

別のサンプルについても作ってみた。

計算結果をチェックするためのサンプル

スクリーンショット 2014-04-22 20.56.08.png

間違えた計算結果を入力した場合

スクリーンショット 2014-04-22 20.57.44.png

計算結果が合っている場合

スクリーンショット 2014-04-22 20.58.01.png

気をつけないといけないこと

using メソッドによって、
検証方法のチェックが可能だが、今現在、
validatesメソッドにチェインしないと使えない。

LGTMはどうか

検証ロジックを一箇所にまとめ、
特定のモデルに対して行いたい場合に使えると思った。

けど、using メソッドを利用するときにvalidates を使って
チェインしないといけないのがちょっとイケてない気がする。
でもこういう複雑なことをするなら自分でメソッドを追加しろよって感じなのだろう。

Coreに分類されているメソッドは数は少ないが、自分でカスタマイズして
新しいメソッドを定義すればよいのかも。

Squareが作ったものだし、コードを読んで色々と学習してみよう。

余談

Square Open Sourceページを見ると、色々あるな...

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8