summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-10-14 17:18:59 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-10-14 17:18:59 -0400
commited10a428abc7be47f8cce83db8dc64ac3cb6e84b (patch)
treeb7617266b4a9f49dec81d71cdb6c762172f706d6 /tests
parent8f64fda22cf9820a07c251acf755e14c836020a8 (diff)
Reusable column handlers for Crud
Diffstat (limited to 'tests')
-rw-r--r--tests/crud.ur22
-rw-r--r--tests/crud.urs6
-rw-r--r--tests/crud1.ur40
3 files changed, 32 insertions, 36 deletions
diff --git a/tests/crud.ur b/tests/crud.ur
index b22cb157..02405f78 100644
--- a/tests/crud.ur
+++ b/tests/crud.ur
@@ -8,6 +8,28 @@ con colMeta = fn t_formT :: (Type * Type) => {
}
con colsMeta = fn cols :: {(Type * Type)} => $(Top.mapT2T colMeta cols)
+fun default (t ::: Type) (sh : show t) (rd : read t) (inj : sql_injectable t)
+ name : colMeta (t, string) =
+ {Nam = name,
+ Show = txt _,
+ Widget = fn nm :: Name => <xml><textbox{nm}/></xml>,
+ WidgetPopulated = fn (nm :: Name) n =>
+ <xml><textbox{nm} value={show _ n}/></xml>,
+ Parse = readError _,
+ Inject = _}
+
+val int = default _ _ _
+val float = default _ _ _
+val string = default _ _ _
+
+fun bool name = {Nam = name,
+ Show = txt _,
+ Widget = fn nm :: Name => <xml><checkbox{nm}/></xml>,
+ WidgetPopulated = fn (nm :: Name) b =>
+ <xml><checkbox{nm} checked={b}/></xml>,
+ Parse = fn x => x,
+ Inject = _}
+
functor Make(M : sig
con cols :: {(Type * Type)}
constraint [Id] ~ cols
diff --git a/tests/crud.urs b/tests/crud.urs
index 866853d5..0b3a4191 100644
--- a/tests/crud.urs
+++ b/tests/crud.urs
@@ -8,6 +8,12 @@ con colMeta = fn t_formT :: (Type * Type) =>
Inject : sql_injectable t_formT.1}
con colsMeta = fn cols :: {(Type * Type)} => $(mapT2T colMeta cols)
+val default : t ::: Type -> show t -> read t -> sql_injectable t -> string -> colMeta (t, string)
+val int : string -> colMeta (int, string)
+val float : string -> colMeta (float, string)
+val string : string -> colMeta (string, string)
+val bool : string -> colMeta (bool, bool)
+
functor Make(M : sig
con cols :: {(Type * Type)}
constraint [Id] ~ cols
diff --git a/tests/crud1.ur b/tests/crud1.ur
index 80b2b103..3849e822 100644
--- a/tests/crud1.ur
+++ b/tests/crud1.ur
@@ -1,44 +1,12 @@
table t1 : {Id : int, A : int, B : string, C : float, D : bool}
-val a = {Nam = "A",
- Show = txt _,
- Widget = fn nm :: Name => <xml><textbox{nm}/></xml>,
- WidgetPopulated = fn (nm :: Name) n =>
- <xml><textbox{nm} value={show _ n}/></xml>,
- Parse = readError _,
- Inject = _}
-
-val b = {Nam = "B",
- Show = txt _,
- Widget = fn nm :: Name => <xml><textbox{nm}/></xml>,
- WidgetPopulated = fn (nm :: Name) s =>
- <xml><textbox{nm} value={s}/></xml>,
- Parse = readError _,
- Inject = _}
-
-val c = {Nam = "C",
- Show = txt _,
- Widget = fn nm :: Name => <xml><textbox{nm}/></xml>,
- WidgetPopulated = fn (nm :: Name) n =>
- <xml><textbox{nm} value={show _ n}/></xml>,
- Parse = readError _,
- Inject = _}
-
-val d = {Nam = "D",
- Show = txt _,
- Widget = fn nm :: Name => <xml><checkbox{nm}/></xml>,
- WidgetPopulated = fn (nm :: Name) b =>
- <xml><checkbox{nm} checked={b}/></xml>,
- Parse = fn x => x,
- Inject = _}
-
open Crud.Make(struct
val tab = t1
val title = "Crud1"
- val cols = {A = a,
- B = b,
- C = c,
- D = d}
+ val cols = {A = Crud.int "A",
+ B = Crud.string "B",
+ C = Crud.float "C",
+ D = Crud.bool "D"}
end)