## -----------------------------------------------------------------------------
if (!rlang::is_installed(c("gt", "tibble"))) {
  knitr::knit_exit()
}

## -----------------------------------------------------------------------------
library(gt)
library(dplyr)

tibble::tribble(
  ~parsnip,               ~engine,              ~numeric, ~class, ~prob,
  "`bag_tree()`",         "`\"C5.0\"`",         "❌",     "✅",    "❌",
  "`bag_tree()`",         "`\"rpart\"`",        "❌",     "✅",    "❌",
  "`bart()`",             "`\"dbarts\"`",       "✅",     "❌",    "❌",
  "`boost_tree()`",       "`\"C5.0\"`",         "❌",     "✅",    "❌",
  "`boost_tree()`",       "`\"catboost\"`",     "✅",     "✅",    "✅",
  "`boost_tree()`",       "`\"h2o_gbm\"`",      "✅",     "✅",    "✅",
  "`boost_tree()`",       "`\"lightgbm\"`",     "✅",     "✅",    "✅",
  "`boost_tree()`",       "`\"xgboost\"`",      "✅",     "✅",    "✅",
  "`C5_rules()`",         "`\"C5.0\"`",         "❌",     "✅",    "❌",
  "`cubist_rules()`",     "`\"Cubist\"`",       "✅",     "❌",    "❌",
  "`decision_tree()`",    "`\"C5.0\"`",         "❌",     "✅",    "❌",
  "`decision_tree()`",    "`\"partykit\"`",     "✅",     "✅",    "✅",
  "`decision_tree()`",    "`\"rpart\"`",        "✅",     "✅",    "✅",
  "`discrim_flexible()`", "`\"earth\"`",        "❌",     "❌",    "❌",
  "`discrim_linear()`",   "`\"MASS\"`",         "❌",     "✅",    "✅",
  "`discrim_linear()`",   "`\"mda\"`",          "❌",     "✅",    "✅",
  "`discrim_linear()`",   "`\"sda\"`",          "❌",     "✅",    "✅",
  "`discrim_linear()`",   "`\"sparsediscrim\"`","❌",     "✅",    "✅",
  "`discrim_quad()`",     "`\"MASS\"`",         "❌",     "✅",    "✅",
  "`linear_reg()`",       "`\"lm\"`",           "✅",     "❌",    "❌",
  "`linear_reg()`",       "`\"glm\"`",          "✅",     "❌",    "❌",
  "`linear_reg()`",       "`\"glmnet\"`",       "✅",     "❌",    "❌",
  "`logistic_reg()`",     "`\"glm\"`",          "❌",     "✅",    "✅",
  "`logistic_reg()`",     "`\"glmnet\"`",       "❌",     "✅",    "✅",
  "`logistic_reg()`",     "`\"LiblineaR\"`",    "❌",     "✅",    "✅",
  "`mars()`",             "`\"earth\"`",        "✅",     "✅",    "✅",
  "`mlp()`",              "`\"nnet\"`",         "✅",     "✅",    "✅",
  "`multinom_reg()`",     "`\"glmnet\"`",       "❌",     "✅",    "✅",
  "`multinom_reg()`",     "`\"nnet\"`",         "❌",     "✅",    "✅",
  "`naive_Bayes()`",      "`\"klaR\"`",         "❌",     "✅",    "✅",
  "`naive_Bayes()`",      "`\"naivebayes\"`",   "❌",     "✅",    "✅",
  "`nearest_neighbor()`", "`any`",              "❌",     "❌",    "❌",
  "`null_model()`",       "`\"parsnip\"`",      "✅",     "✅",    "✅",
  "`pls()`",              "`\"mixOmics\"`",     "✅",     "❌",    "✅",
  "`rand_forest()`",      "`\"aorsf\"`",        "✅",     "❌",    "❌",
  "`rand_forest()`",      "`\"partykit\"`",     "✅",     "❌",    "❌",
  "`rand_forest()`",      "`\"randomForest\"`", "✅",     "✅",    "✅",
  "`rand_forest()`",      "`\"ranger\"`",       "✅",     "✅",    "✅",
  "`rule_fit()`",         "`\"h2o\"`",          "✅",     "✅",    "✅",
  "`rule_fit()`",         "`\"xrf\"`",          "✅",     "✅",    "✅",
  "`svm_linear()`",       "`\"kernlab\"`",      "✅",     "✅",    "✅",
  "`svm_linear()`",       "`\"LiblineaR\"`",    "✅",     "✅",    "❌"
) |>
  gt() |>
  tab_spanner(
    label = "Model",
    columns = c(parsnip, engine)
  ) |>
  tab_spanner(
    label = "Regression",
    columns = c(numeric)
  ) |>
  tab_spanner(
    label = "Classification",
    columns = c(class, prob)
  ) |>
  tab_header(
    title = "Supported Prediction Types"
  ) |>
  cols_align(
    "center",
    columns = c(numeric, class, prob)
  ) |>
  tab_footnote("✅: Supported") |>
  tab_footnote("❌: Cannot be supported") |>
  tab_footnote("⚪: Not yet supported") |>
  fmt_markdown(
    columns = c(parsnip, engine)
  )

## -----------------------------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## -----------------------------------------------------------------------------
library(orbital)

## -----------------------------------------------------------------------------
all_funs <- ls(getNamespace("orbital"))

steps <- grep("orbital.step_", all_funs, value = TRUE)
steps <- gsub("orbital.", "", steps)

## -----------------------------------------------------------------------------
cat(paste0("- `", steps, "()`\n"))

