diff --git a/.Rbuildignore b/.Rbuildignore index 3dae037..be60c4e 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,5 +4,6 @@ ^_pkgdown\.yml$ ^docs$ ^pkgdown$ +^Meta$ ^img$ ^\.github$ diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml new file mode 100644 index 0000000..cad232b --- /dev/null +++ b/.github/workflows/r.yml @@ -0,0 +1,37 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# +# See https://github.com/r-lib/actions/tree/master/examples#readme for +# additional example workflows available for the R community. + +name: R + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: macOS-latest + strategy: + matrix: + r-version: [3.5, 3.6] + + steps: + - uses: actions/checkout@v2 + - name: Set up R ${{ matrix.r-version }} + uses: r-lib/actions/setup-r@ffe45a39586f073cc2e9af79c4ba563b657dc6e3 + with: + r-version: ${{ matrix.r-version }} + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + shell: Rscript {0} + - name: Check + run: rcmdcheck::rcmdcheck(args = "--no-manual", error_on = "error") + shell: Rscript {0} diff --git a/.gitignore b/.gitignore index 50562f9..274fa1c 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,5 @@ inst/doc .Rproj.user *.DS_Store +doc +Meta diff --git a/DESCRIPTION b/DESCRIPTION index 9a814b1..5730bf8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -37,7 +37,6 @@ Depends: R (>= 4.0.0) VignetteBuilder: knitr Imports: - gradethis, learnr, rsconnect, ggplot2, diff --git a/NAMESPACE b/NAMESPACE index 34e0ae4..26128bb 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,3 +1,3 @@ # Generated by roxygen2: do not edit by hand -import(learnr) +import(dplyr) diff --git a/R/ixpantia-introR-package.R b/R/ixpantia-introR-package.R deleted file mode 100644 index a8c9b3c..0000000 --- a/R/ixpantia-introR-package.R +++ /dev/null @@ -1,8 +0,0 @@ -#' Paquete en R para incluir ejercicios en RStudio -#' -#' El paquete ixpantia.introR da acceso a una serie de ejercicios dentro de la -#' interfaz de RStudio. -#' Ofrecemos los siguientes ejercicios. -#' @keywords internal -"_PACKAGE" - diff --git a/R/lista_tutoriales.R b/R/lista_tutoriales.R index 75a724d..46c6707 100644 --- a/R/lista_tutoriales.R +++ b/R/lista_tutoriales.R @@ -1,10 +1,98 @@ -#' Listar los tutoriales disponibles en el paquete +#' @import dplyr +NULL + +#' @title Practicar con tutorial +#' +#' @description Despliega el tutorial elegido por su nombre en un navegador web +#' +#' @details La función necesita que en el computador docker esté instalado y que +#' se hayan agregado las lineas siguientes en la terminal: +#' +#' @param nombre_tutorial Es el nombre de uno de los tutoriales dentro del +#' paquete ixpantia.introR +#' +#' @examples +#'\dontrun{ +#' practicar("pizarra_coercion") +#'} +practicar <- function(nombre_tutorial) { + tutoriales <- available_tutorials("ixpantia.introR") %>% + as_tibble() + + nombres <- tutoriales %>% + select(name) %>% + pull() + + if (!nombre_tutorial %in% nombres) { + nombres <- tutoriales %>% + select(name) %>% + pull() + print("Nombre no válido. Elegir alguno de los siguientes:") + nombres + } + + learnr::run_tutorial(nombre_tutorial, package = "ixpantia.introR") +} + +#' @title Listar tutoriales +#' +#' @description Genera una lista con los tutoriales disponibles en el paquete. +#' +#' @details La función permitar dar una lista de los tutoriales disponibles en +#' el paquete por su tipo, ya sea tarea o pizarra. #' -#' @import learnr -#' @return lista Lista de tutoriales -lista_tutoriales <- function() { +#' @param tipo Es el tipo del tutorial que queremos listar. Puede ser `tarea` o +#' `pizarra` +#' +#' @examples +#'\dontrun{ +#' listar_tutoriales(tipo = "pizarra") +#'} +listar_tutoriales <- function(tipo) { + + if (is.null(tipo)) { + "Por favor indique el tipo del tutorial" + } + + if (tipo == "tarea") { + tutoriales <- learnr::available_tutorials("ixpantia.introR") %>% + tibble::as_tibble() %>% + dplyr::filter(startsWith(name, "tarea")) + } else if (tipo == "pizarra") { + tutoriales <- learnr::available_tutorials("ixpantia.introR") %>% + tibble::as_tibble() %>% + dplyr::filter(startsWith(name, "pizarra")) + } + return(tutoriales) +} + +#' @title Instalar dependendencias +#' +#' @description Muestra las dependencias del paquete ixpantia.introR que son +#' necesarias para poder practicar con los tutoriales interactivos +#' +#' @details El paquete ixpantia.introR toma en cuenta una cantidad de paquetes +#' que son necesarios para practicar con los tutoriales interactivos. Sino +#' tenemos estos paquetes instalados en nuestro computador, no podremos hacer +#' uso de los tutoriales. Si en algún caso no sabemos cuál paquete nos falta, +#' esta función nos dará la lista de dependencias. +#' +#' @param tipo Es el tipo del tutorial que queremos listar. Puede ser `tarea` o +#' `pizarra` +#' +#' @examples +#'\dontrun{ +#' listar_tutoriales(tipo = "pizarra") +#'} +revisar_dependencias <- function(instalar = FALSE) { - tutoriales <- learnr::available_tutorials(package = "ixpantia.introR") - lista <- tutoriales$tutorials - return(lista) + if (instalar == TRUE) { + # Si defino paquetes fuera no realiza la instalacion y busca el objeto + install.packages(tutorial_package_dependencies(package = "ixpantia.introR")) + } else { + return(tutorial_package_dependencies(package = "ixpantia.introR")) + } } + + + diff --git a/inst/tutorials/estilo_codigo/estilo_codigo.Rmd b/inst/tutorials/tarea_estilo_codigo/tarea_estilo_codigo.Rmd similarity index 100% rename from inst/tutorials/estilo_codigo/estilo_codigo.Rmd rename to inst/tutorials/tarea_estilo_codigo/tarea_estilo_codigo.Rmd diff --git a/man/ixpantia.introR-package.Rd b/man/ixpantia.introR-package.Rd deleted file mode 100644 index d072a58..0000000 --- a/man/ixpantia.introR-package.Rd +++ /dev/null @@ -1,38 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/ixpantia-introR-package.R -\docType{package} -\name{ixpantia.introR-package} -\alias{ixpantia.introR} -\alias{ixpantia.introR-package} -\title{Paquete en R para incluir ejercicios en RStudio} -\description{ -El paquete ixpantia.introR da acceso a una serie de ejercicios dentro de la -interfaz de RStudio. -Ofrecemos los siguientes ejercicios. -} -\seealso{ -Useful links: -\itemize{ - \item \url{https://github.com/ixpantia/ixpantia.introR} - \item Report bugs at \url{https://github.com/ixpantia/ixpantia.introR/issues} -} - -} -\author{ -\strong{Maintainer}: Frans van Dunné \email{frans@ixpantia.com} (\href{https://orcid.org/0000-0002-7853-2811}{ORCID}) - -Authors: -\itemize{ - \item Andrea Vargas \email{andrea@ixpantia.com} - \item Ronny Hernández Mora \email{ronny@ixpantia.com} (\href{https://orcid.org/0000-0001-6225-7096}{ORCID}) - \item Magdiel Ablan \email{magdiel@ixpantia.com} -} - -Other contributors: -\itemize{ - \item ixpantia, - family = SRL \email{hola@ixpantia.com} [copyright holder] -} - -} -\keyword{internal} diff --git a/man/lista_tutoriales.Rd b/man/lista_tutoriales.Rd deleted file mode 100644 index fc276b6..0000000 --- a/man/lista_tutoriales.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/lista_tutoriales.R -\name{lista_tutoriales} -\alias{lista_tutoriales} -\title{Listar los tutoriales disponibles en el paquete} -\usage{ -lista_tutoriales() -} -\value{ -lista Lista de tutoriales -} -\description{ -Función para listar los tutoriales disponibles en el paquete -} diff --git a/man/listar_tutoriales.Rd b/man/listar_tutoriales.Rd new file mode 100644 index 0000000..60b15f4 --- /dev/null +++ b/man/listar_tutoriales.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/lista_tutoriales.R +\name{listar_tutoriales} +\alias{listar_tutoriales} +\title{Listar tutoriales} +\usage{ +listar_tutoriales(tipo) +} +\arguments{ +\item{tipo}{Es el tipo del tutorial que queremos listar. Puede ser `tarea` o +`pizarra`} +} +\description{ +Genera una lista con los tutoriales disponibles en el paquete. +} +\details{ +La función permitar dar una lista de los tutoriales disponibles en +el paquete por su tipo, ya sea tarea o pizarra. +} +\examples{ +\dontrun{ +listar_tutoriales(tipo = "pizarra") +} +} diff --git a/man/practicar.Rd b/man/practicar.Rd new file mode 100644 index 0000000..88978cc --- /dev/null +++ b/man/practicar.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/lista_tutoriales.R +\name{practicar} +\alias{practicar} +\title{Practicar con tutorial} +\usage{ +practicar(nombre_tutorial) +} +\arguments{ +\item{nombre_tutorial}{Es el nombre de uno de los tutoriales dentro del +paquete ixpantia.introR} +} +\description{ +Despliega el tutorial elegido por su nombre en un navegador web +} +\details{ +La función necesita que en el computador docker esté instalado y que +se hayan agregado las lineas siguientes en la terminal: +} +\examples{ +\dontrun{ +practicar("pizarra_coercion") +} +} diff --git a/man/revisar_dependencias.Rd b/man/revisar_dependencias.Rd new file mode 100644 index 0000000..86fe624 --- /dev/null +++ b/man/revisar_dependencias.Rd @@ -0,0 +1,28 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/lista_tutoriales.R +\name{revisar_dependencias} +\alias{revisar_dependencias} +\title{Instalar dependendencias} +\usage{ +revisar_dependencias(instalar = FALSE) +} +\arguments{ +\item{tipo}{Es el tipo del tutorial que queremos listar. Puede ser `tarea` o +`pizarra`} +} +\description{ +Muestra las dependencias del paquete ixpantia.introR que son +necesarias para poder practicar con los tutoriales interactivos +} +\details{ +El paquete ixpantia.introR toma en cuenta una cantidad de paquetes +que son necesarios para practicar con los tutoriales interactivos. Sino +tenemos estos paquetes instalados en nuestro computador, no podremos hacer +uso de los tutoriales. Si en algún caso no sabemos cuál paquete nos falta, +esta función nos dará la lista de dependencias. +} +\examples{ +\dontrun{ +listar_tutoriales(tipo = "pizarra") +} +}