[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