Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
class method
BigDecimal.save_limit
BigDecimal.save_limit { ... }
ext/bigdecimal/bigdecimal.c
View on GitHub ↗
static VALUE
BigDecimal_save_limit(VALUE self)
{
size_t const limit = VpGetPrecLimit();
int state;
VALUE ret = rb_protect(rb_yield, Qnil, &state);
VpSetPrecLimit(limit);
if (state) rb_jump_tag(state);
return ret;
}
Execute the provided block, but preserve the precision limit
Example
BigDecimal.limit(100) puts BigDecimal.limit BigDecimal.save_limit do BigDecimal.limit(200) puts BigDecimal.limit end puts BigDecimal.limit