[rkward-cvs] SF.net SVN: rkward:[4140] trunk/rkward/packages/rkwarddev
m-eik at users.sourceforge.net
m-eik at users.sourceforge.net
Wed Jan 4 22:09:25 UTC 2012
Revision: 4140
http://rkward.svn.sourceforge.net/rkward/?rev=4140&view=rev
Author: m-eik
Date: 2012-01-04 22:09:25 +0000 (Wed, 04 Jan 2012)
Log Message:
-----------
rkwarddev: you can now decide whether you want empty "else {}" statements in the generated JavaScript, default is FALSE.
Modified Paths:
--------------
trunk/rkward/packages/rkwarddev/ChangeLog
trunk/rkward/packages/rkwarddev/R/rk-internal.R
trunk/rkward/packages/rkwarddev/R/rk.paste.JS.R
trunk/rkward/packages/rkwarddev/inst/doc/rkwarddev_vignette.pdf
trunk/rkward/packages/rkwarddev/man/rk.paste.JS.Rd
Modified: trunk/rkward/packages/rkwarddev/ChangeLog
===================================================================
--- trunk/rkward/packages/rkwarddev/ChangeLog 2012-01-04 17:55:32 UTC (rev 4139)
+++ trunk/rkward/packages/rkwarddev/ChangeLog 2012-01-04 22:09:25 UTC (rev 4140)
@@ -4,6 +4,7 @@
- removed superfluous "level=1" arguments from automatic "rk.header()"s in rk.JS.doc()
- added wrapper function rk.XML.checkbox() for rk.XML.cbox()
- changed rk.JS.saveobj() to use ".GlobalEnv$" instead of "assign()" in the resulting code
+ - added option to toggle the addition of empty "else {}" statements in rk.JS.ite objects to rk.paste.JS()
## 0.05-0 (2011-12-14)
- "result.header" now doesn't add quotes by itself in rk.JS.doc(), so you can have R objects pasted.
Modified: trunk/rkward/packages/rkwarddev/R/rk-internal.R
===================================================================
--- trunk/rkward/packages/rkwarddev/R/rk-internal.R 2012-01-04 17:55:32 UTC (rev 4139)
+++ trunk/rkward/packages/rkwarddev/R/rk-internal.R 2012-01-04 22:09:25 UTC (rev 4140)
@@ -527,7 +527,7 @@
## function paste.JS.ite()
-paste.JS.ite <- function(object, level=1, indent.by="\t", recurse=FALSE){
+paste.JS.ite <- function(object, level=1, indent.by="\t", recurse=FALSE, empty.e=FALSE){
stopifnot(inherits(object, "rk.JS.ite"))
# check indentation
main.indent <- indent(level, by=indent.by)
@@ -560,8 +560,12 @@
if(length(object at elifJS) == 1){
elseJS <- paste(" else ", paste.JS.ite(object at elifJS[[1]], level=level, indent.by=indent.by, recurse=TRUE), sep="")
} else {
- # close for sure with an empty "else"
- elseJS <- " else {}"
+ if(isTRUE(empty.e)){
+ # close for sure with an empty "else"
+ elseJS <- " else {}"
+ } else {
+ elseJS <- NULL
+ }
}
}
Modified: trunk/rkward/packages/rkwarddev/R/rk.paste.JS.R
===================================================================
--- trunk/rkward/packages/rkwarddev/R/rk.paste.JS.R 2012-01-04 17:55:32 UTC (rev 4139)
+++ trunk/rkward/packages/rkwarddev/R/rk.paste.JS.R 2012-01-04 22:09:25 UTC (rev 4140)
@@ -19,6 +19,8 @@
#' @param join For \code{rk.JS.var} objects only: A character string, useful for GUI elements which accept multiple objects
#' (i.e., multi-varslots). If \code{join} is something other than \code{""}, these objects will be collapsed into one string
#' when pasted, joined by this string.
+#' @param empty.e For \code{rk.JS.ite} objects only: Logical, if \code{TRUE} will force to add empty \code{else \{\}} brackets when
+#' there is no \code{else} statement defined, which is considered to enhance code readability by some.
#' @return A character string.
#' @include rk.JS.arr-class.R
#' @include rk.JS.ite-class.R
@@ -33,14 +35,14 @@
#' @export
rk.paste.JS <- function(..., level=2, indent.by="\t", funct=NULL, array=NULL,
- var.prefix=NULL, modifiers=NULL, default=NULL, join=NULL){
+ var.prefix=NULL, modifiers=NULL, default=NULL, join=NULL, empty.e=FALSE){
stopifnot(level > 0)
all.objects <- list(...)
paste.results <- paste(sapply(all.objects, function(this.object){
if(inherits(this.object, "rk.JS.ite")){
# done by an internal function, to ease handling of recursions
- result <- paste.JS.ite(this.object, level=level, indent.by=indent.by)
+ result <- paste.JS.ite(this.object, level=level, indent.by=indent.by, empty.e=empty.e)
} else if(inherits(this.object, "rk.JS.arr")){
# done by an internal function, to ease handling of recursions
result <- paste.JS.array(this.object, level=level, indent.by=indent.by, funct=funct)
Modified: trunk/rkward/packages/rkwarddev/inst/doc/rkwarddev_vignette.pdf
===================================================================
(Binary files differ)
Modified: trunk/rkward/packages/rkwarddev/man/rk.paste.JS.Rd
===================================================================
--- trunk/rkward/packages/rkwarddev/man/rk.paste.JS.Rd 2012-01-04 17:55:32 UTC (rev 4139)
+++ trunk/rkward/packages/rkwarddev/man/rk.paste.JS.Rd 2012-01-04 22:09:25 UTC (rev 4140)
@@ -4,7 +4,8 @@
\usage{
rk.paste.JS(..., level = 2, indent.by = "\t",
funct = NULL, array = NULL, var.prefix = NULL,
- modifiers = NULL, default = NULL, join = NULL)
+ modifiers = NULL, default = NULL, join = NULL,
+ empty.e = FALSE)
}
\arguments{
\item{...}{Objects of class \code{rk.JS.ite},
@@ -47,6 +48,12 @@
is something other than \code{""}, these objects will be
collapsed into one string when pasted, joined by this
string.}
+
+ \item{empty.e}{For \code{rk.JS.ite} objects only:
+ Logical, if \code{TRUE} will force to add empty
+ \code{else \{\}} brackets when there is no \code{else}
+ statement defined, which is considered to enhance code
+ readability by some.}
}
\value{
A character string.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the rkward-tracker
mailing list