---
title: "ooplah"
output: github_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(ooplah)
ref <- function(val) sprintf("[%s](https://xoopr.github.io/ooplah/reference/%s.html)",
                             as.character(substitute(val)),
                             as.character(substitute(val)))
cran <- function(val) sprintf("**[%s](https://CRAN.R-project.org/package=%s)**",
                              as.character(substitute(val)),
                              as.character(substitute(val)))
gh <- function(org, repo) sprintf("**[%s](https://github.com/%s/%s)**", repo, org, repo)
pkg <- function(pkg) sprintf("**%s**", as.character(substitute(pkg)))
ol <- "**ooplah**"
```

<img src="man/figures/logo.png" align="right" alt="" width="120" />

[![CRAN Status Badge](https://www.r-pkg.org/badges/version-ago/ooplah)](https://cran.r-project.org/package=ooplah)
[![CRAN Checks](https://cranchecks.info/badges/worst/ooplah)](https://cran.r-project.org/web/checks/check_results_ooplah.html)
[![R-CMD-check / codecov](https://github.com/xoopR/ooplah/actions/workflows/check-covr.yml/badge.svg?branch=main)](https://github.com/xoopR/ooplah/actions/workflows/check-covr.yml)

[![Repo Status](https://www.repostatus.org/badges/latest/active.svg)](https://github.com/xoopR/ooplah)
[![Lifecycle](https://lifecycle.r-lib.org/articles/figures/lifecycle-experimental.svg)](https://github.com/xoopR/ooplah)

[![CRAN Downloads](https://cranlogs.r-pkg.org/badges/grand-total/ooplah)](https://cran.r-project.org/package=ooplah)
[![codecov](https://app.codecov.io/gh/xoopR/ooplah/branch/main/graph/badge.svg)](https://app.codecov.io/gh/xoopR/ooplah)
[![dependencies](https://tinyverse.netlify.com/badge/ooplah)](https://CRAN.R-project.org/package=ooplah)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## What is ooplah?

`r ol` contains helper functions for object-oriented programming in R, with a focus on R6. These functions are used throughout the xoop universe but can be useful in any package.

## Installation

For the latest release on [CRAN](https://CRAN.R-project.org/package=ooplah), install with
```{r eval=FALSE}
install.packages("ooplah")
```

Otherwise for the latest stable build
```{r eval=FALSE}
remotes::install_github("xoopR/ooplah")
```

## Future Plans

The `r ol` API is still experimental and may be subject to major changes. Currently it's primary use-case is in other xoopR packages, minor or major changes will be made to satisfy this dependency. Future development will then focus on code quality and speed.

## Package Development and Contributing

`r ol` is released under the [MIT licence](https://opensource.org/licenses/MIT). We welcome and appreciate all [new issues](https://github.com/xoopR/ooplah/issues) relating to bug reports, questions and suggestions. You can also [start a discussion](https://github.com/xoopR/ooplah/discussions) for more extensive feedback or feature suggestion.
