ext/ox/dump.c in ox-2.0.9 vs ext/ox/dump.c in ox-2.0.11
- old
+ new
@@ -737,9 +737,17 @@
e.type = DateCode;
out->w_start(out, &e);
dump_date(out, obj);
e.indent = -1;
out->w_end(out, &e);
+ } else if (0 == strcmp("BigDecimal", classname)) {
+ VALUE rs = rb_funcall(obj, ox_to_s_id, 0);
+
+ e.type = BigDecimalCode;
+ out->w_start(out, &e);
+ dump_value(out, StringValuePtr(rs), RSTRING_LEN(rs));
+ e.indent = -1;
+ out->w_end(out, &e);
} else {
if (StrictEffort == out->opts->effort) {
rb_raise(rb_eNotImpError, "Failed to dump T_DATA %s\n", classname);
} else {
e.type = NilClassCode;