.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Bigtop::Backend::Model 3" .TH Bigtop::Backend::Model 3 "2008-01-18" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Bigtop::Backend::Model \- defines legal keywords in table and field blocks .SH "SYNOPSIS" .IX Header "SYNOPSIS" If you are making a Model generating backend: .PP .Vb 1 \& use Bigtop::Backend::Model; .Ve .PP This specifies the valid keywords for the Model generating backend. .PP If you need additional keywords which are generally useful, add them here (and send in a patch). If you need backend specific keywords, register them within your backend module. Note that only keywords affecting the model should be put here. But, fields have other keywords which affect things like what \s-1SQL\s0 represents them and how they look in html forms. Register those keywords in Bigtop::SQL:: or Bigtop::Control:: modules. .SH "DESCRIPTION" .IX Header "DESCRIPTION" If you are using a Bigtop backend which generates models, you should read this document to find out what the valid keywords inside table and field blocks are. .PP If you are writing a Bigtop backend to generate models, you should use this module. That will register the standard table and field keywords with the Bigtop parser. .SH "BASIC STRUCTURE" .IX Header "BASIC STRUCTURE" A bigtop app block could look like this: .PP .Vb 6 \& app name { \& table name { \& field name { \& } \& } \& } .Ve .SH "TABLE KEYWORDS" .IX Header "TABLE KEYWORDS" Tables can be field blocks. They can also have these simple statements: .IP "foreign_display" 4 .IX Item "foreign_display" Inside the table, you can include a foreign_display statement. The value must be a quoted string like this: .Sp .Vb 1 \& foreign_display `%last_name, %first_name`; .Ve .Sp Any percent and the Perl identifier after it will be replaced with the current row's values for those columns. This is useful when a model needs to deliver a user meaningful value for the current row. .IP "model_base_class" 4 .IX Item "model_base_class" This becomes the base class of the model module for this table. Each backend has a default base model, but setting this overrides it. .SH "FIELD KEYWORDS" .IX Header "FIELD KEYWORDS" .IP "non_essential" 4 .IX Item "non_essential" Inside the field you may include non_essential. If it has a true value, the column will not be considered essential. This usually means that it will not be fetched when a row is retrieved from the database, unless its accessor is directly called. By default, all fields are considered essential. .SH "OTHER KEYWORDS" .IX Header "OTHER KEYWORDS" The main Bigtop::Parser registers not_for simple statements for tables and fields. You can use them like this: .PP .Vb 4 \& table something_that_needs_no_model { \& not_for Model; \& ... \& } .Ve .PP This will generate the \s-1SQL\s0 for the table (if you are using an \s-1SQL\s0 backend), but not the Model. The same goes for this: .PP .Vb 6 \& table normal_but_with_strange_field { \& field confusing_to_CDBI { \& is int4; \& not_for Model; \& } \& } .Ve .SH "AUTHOR" .IX Header "AUTHOR" Phil Crow .SH "COPYRIGHT and LICENSE" .IX Header "COPYRIGHT and LICENSE" Copyright (C) 2005 by Phil Crow .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.