| Title: | Cyclomatic Complexity of R Code | 
| Version: | 1.1.1 | 
| Author: | Gabor Csardi | 
| Maintainer: | Gabor Csardi <csardi.gabor@gmail.com> | 
| Description: | Cyclomatic complexity is a software metric (measurement), used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976. | 
| License: | MIT + file LICENSE | 
| URL: | https://github.com/gaborcsardi/cyclocomp | 
| BugReports: | https://github.com/gaborcsardi/cyclocomp/issues | 
| Imports: | callr, crayon, desc, remotes, withr | 
| Suggests: | testthat | 
| RoxygenNote: | 7.2.3 | 
| Encoding: | UTF-8 | 
| NeedsCompilation: | no | 
| Packaged: | 2023-08-30 12:49:50 UTC; gaborcsardi | 
| Repository: | CRAN | 
| Date/Publication: | 2023-08-30 17:00:22 UTC | 
Cyclomatic Complexity of R Code
Description
Cyclomatic complexity is a software metric (measurement), used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976.
Calculate the cyclomatic complexity of an R function or expression.
Usage
cyclocomp(expr)
cyclocomp_q(expr)
Arguments
| expr | An R function or expression. | 
Value
Integer scalar, the cyclomatic complexity of the expression.
See Also
Useful links:
- Report bugs at https://github.com/gaborcsardi/cyclocomp/issues 
Other cyclomatic complexity: 
cyclocomp_package_dir(),
cyclocomp_package()
Examples
## Supply a function
cyclocomp(
  function(arg) { calulate(this); and(that) }
)
cyclocomp(ls)
cyclocomp(cyclocomp)
## Or a quoted expression
cyclocomp(quote( if (condition) "foo" else "bar" ))
## cyclocomp_q quotes the expression for you
cyclocomp_q(while (condition) { loop })
## Complexity of individual control flow constructs
cyclocomp(quote({
  if (condition) this
}))
cyclocomp(quote({
  if (condition) this else that
}))
cyclocomp(quote({
  for (var in seq) expr
}))
cyclocomp(quote({
  while (cond) expr
}))
cyclocomp(quote({
  repeat expr
}))
cyclocomp(quote({
  for (var in seq) {
    this
    break
    that
  }
}))
cyclocomp(quote({
  for (var in seq) {
    this
    next
    that
  }
}))
Cyclomatic complexity of the objects in an installed package
Description
Note that the package must be installed.
Usage
cyclocomp_package(package)
Arguments
| package | Package name, character scalar. | 
Value
Data frame with two columns: name and cyclocomp.
See Also
Other cyclomatic complexity: 
cyclocomp_package_dir(),
cyclocomp()
Examples
## They might take a while to run
## Not run: 
cyclocomp_package("grDevices")
cyclocomp_package("methods")
## End(Not run)
Cyclomatic complexity of a local package
Description
Automatically builds the package and installs it to a temporary directory.
Usage
cyclocomp_package_dir(path = ".")
Arguments
| path | Path to the root directory of the R package. | 
Value
Data frame with two columns: name and cyclocomp.
See Also
Other cyclomatic complexity: 
cyclocomp_package(),
cyclocomp()