ad_include_contract (public)
ad_include_contract docstring [ args... ]
Defined in packages/acs-tcl/tcl/tcl-documentation-procs.tcl
Define an interface between a page and an ADP <include> similar to the page_contract. This is a light-weight implementation based on the ad_page_contract. It allows one to check the passed arguments (types, optionality) and can be used for setting defaults the usual way. Using ad_include_contracts helps to improve documentation of included content.
- Parameters:
- docstring (required)
- documentation of the include
- Author:
- gustaf neumann <neumann@wu-wien.ac.at>
- Created:
- Sept 2015
- See Also:
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- page_contracts
Source code: set __cmd {ns_set create include} foreach __v [uplevel {info vars}] { if {[string match __* $__v] || [regexp {[a-zA-Z]:[a-z0-9]} $__v] || ![uplevel [list info exists $__v]] } { # # Don't add internal variables (starting with __*), # multirow variables, or vars without values into the # ns_set used for checking # continue } if {[uplevel [list array exists $__v]]} { # # For the time being, do nothing with arrays # # ns_log notice "$__v is an array" # if {[string match *:* $__v] || [uplevel [list info exists $__v:rowcount]]} { # # # # don't try to pass multirows # # # } else { # #lappend __cmd $__v [uplevel [list array get $__v]] # } continue } #ns_log notice "V=$__v exists: [uplevel [list info exists $__v]]" lappend __cmd $__v [uplevel [list set $__v]] } #ns_log notice "final command: $__cmd" if {[uplevel {info exists __adp_remember_stub}]} { set __path [string range [uplevel {set __adp_remember_stub}] [string length $::acs::rootdir]+1 end] set __context "include $__path" } else { set __context "" } ad_page_contract -warn -level 2 -context $__context -form [{*}$__cmd] $docstring {*}$argsXQL Not present: Generic, PostgreSQL, Oracle