Powered by SmartDoc

ルールのフォーマット

ルールの例をいくつか示します。

name == ‘MyName’
(title =~ /R/) and (title.size > 10)
not (count < 20)

基本的に「属性 オペレータ 条件」でルールを記述します(属性はコンポーネントで定義されているアクセサかインスタンス変数です)。複数のルールをつなげるにはand/orを、否定にするにはnotを式の前に記述します。論理演算子を使うときは、式をかっこで囲んでください。

データ型の変換

上記のうち、最後の例では属性を数値としてルールを設定しています。フォームデータは文字列として代入されますが、データの検証時は条件に合わせてデータ型が変換されます。例えば100以上500以下などのルールは以下のように記述します。

Number : CKTextField {
  value    = number
  validate = “(number >= 100) and (number <= 500)“
  pass     = pass_number
}

オペレータ

使用できるオペレータを次に示します。

条件式に使用できるオペレータ
オペレータ 説明
== 両辺が同じ。
!= 両辺が異なる。
> 左辺が右辺より大きい。
< 左辺が右辺より小さい。
>= 左辺が右辺より大きいか、同じ。
<= 左辺が右辺より小さいか、同じ。
=~ 文字列のパターンマッチを行う。