# Setting a default rounding specification

If you ever get tired of having to write `table_glue(..., rspec = your_rspec)` and would rather just write `table_glue(...)`, you should find this vignette helpful.

## Options hierarchy

When you call a function like `table_glue()` or `table_value()`, you may supply your own rounding specification or use a default rounding specification. The default rounding specification is based on the global options of your current R session. So to make a particular rounding specification the default specification, all you need to do is set your global options using the specification of your choice.

    library(table.glue)

## Step 1 - Make your rounding specification

Any rounding specification will do.

    rspec <- round_spec()
    rspec <- round_using_decimal(rspec, digits = 5)

## Step 2 - Modify specification names

Modify each name so that it starts with ‘table.glue’. This protects you from mistakenly changing other package options.

    names(rspec) <- paste('table.glue', names(rspec), sep = '.')

## Step 3 - Pass to options.

All you need to do now is use the `options()` function.

    options(rspec)

    table_value(pi)
    #> [1] "3.14159"

## Step 4 - Revert!

Did you make a mistake? We all do. You can revert the options back to normal by setting `force_default = TRUE` in a new `round_spec()` function, and then repeating steps 2 and 3.

    back_to_normal <- round_spec(force_default = TRUE)

    names(back_to_normal) <- paste('table.glue', names(back_to_normal), sep = '.')

    options(back_to_normal)

    table_value(pi)
    #> [1] "3.1"