summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2009-02-19 13:29:15 -0400
committerJohn Wiegley <johnw@newartisans.com>2009-02-19 13:29:15 -0400
commitb684783eff255508ad567afd43b05b2ba9e6ecb7 (patch)
treea623ea3a6a8359b6da4f8080db2cd202a52f093f
parent33786a5c8ae9aac88e669f220d25b49f8aa1a748 (diff)
downloadfork-ledger-b684783eff255508ad567afd43b05b2ba9e6ecb7.tar.gz
fork-ledger-b684783eff255508ad567afd43b05b2ba9e6ecb7.tar.bz2
fork-ledger-b684783eff255508ad567afd43b05b2ba9e6ecb7.zip
Moved init of options to the options themselves
-rw-r--r--src/report.cc52
-rw-r--r--src/report.h78
2 files changed, 69 insertions, 61 deletions
diff --git a/src/report.cc b/src/report.cc
index ecd3decf..d1ee635e 100644
--- a/src/report.cc
+++ b/src/report.cc
@@ -40,58 +40,6 @@
namespace ledger {
-report_t::report_t(session_t& _session)
- : session(_session), budget_flags(BUDGET_NO_BUDGET)
-{
- // Setup default values for some of the option handlers
- HANDLER(date_format_).on("%y-%b-%d");
-
- HANDLER(register_format_).on(
- "%(print(date, date_width))"
- " %(print(truncate(payee, payee_width), payee_width))"
- " %(print(truncate(account, account_width, abbrev_len), account_width))"
- " %(print(strip(display_amount), amount_width, 3 + date_width + payee_width + account_width + amount_width))"
- " %(print(strip(display_total), total_width, 4 + date_width + payee_width + account_width + amount_width + total_width, true))\n%/"
- "%(print(\" \", 2 + date_width + payee_width))"
- "%(print(truncate(account, account_width, abbrev_len), account_width))"
- " %(print(strip(display_amount), amount_width, 3 + date_width + payee_width + account_width + amount_width))"
- " %(print(strip(display_total), total_width, 4 + date_width + payee_width + account_width + amount_width + total_width, true))\n");
-
- HANDLER(print_format_).on(
- "%(format_date(entry.date, \"%Y/%m/%d\"))"
- "%(entry.cleared ? \" *\" : (entry.pending ? \" !\" : \"\"))"
- "%(code ? \" (\" + code + \")\" : \"\") %(payee)%(entry.comment | \"\")\n"
- " %(entry.uncleared ? (cleared ? \"* \" : (pending ? \"! \" : \"\")) : \"\")"
- "%-34(account)"
- " %12(calculated ? \"\" : strip(amount))%(comment | \"\")\n%/"
- " %(entry.uncleared ? (cleared ? \"* \" : (pending ? \"! \" : \"\")) : \"\")"
- "%-34(account)"
- " %12(calculated ? \"\" : strip(amount))%(comment | \"\")\n%/\n");
-
- HANDLER(balance_format_).on(
- "%20(print(strip(display_total), 20))"
- " %(!options.flat ? depth_spacer : \"\")"
- "%-(partial_account(options.flat))\n");
-
- HANDLER(equity_format_).on("\n%D %Y%C%P\n%/ %-34W %12t\n");
-
- HANDLER(plot_amount_format_).on("%D %(S(t))\n");
- HANDLER(plot_total_format_).on("%D %(S(T))\n");
-
- HANDLER(prices_format_).on(
- "%-.9(date) %-8(account) %12(strip(display_amount))\n");
- HANDLER(pricesdb_format_).on("P %[%Y/%m/%d %H:%M:%S] %A %t\n");
-
- HANDLER(csv_format_).on(
- "%(quoted(date)),"
- "%(quoted(payee)),"
- "%(quoted(account)),"
- "%(quoted(display_amount)),"
- "%(quoted((cleared or entry.cleared) ? \"*\" : ((pending or entry.pending) ? \"!\" : \"\"))),"
- "%(quoted(code)),"
- "%(quoted(join(note)))\n");
-}
-
void report_t::xacts_report(xact_handler_ptr handler)
{
journal_xacts_iterator walker(*session.journal.get());
diff --git a/src/report.h b/src/report.h
index 213716da..bead5451 100644
--- a/src/report.h
+++ b/src/report.h
@@ -114,7 +114,8 @@ public:
uint_least8_t budget_flags;
- explicit report_t(session_t& _session);
+ explicit report_t(session_t& _session)
+ : session(_session), budget_flags(BUDGET_NO_BUDGET) {}
virtual ~report_t() {
output_stream.close();
@@ -217,7 +218,13 @@ public:
parent->HANDLER(display_total_).set_expr("total_expr/count");
});
- OPTION(report_t, balance_format_);
+ OPTION__(report_t, balance_format_, CTOR(report_t, balance_format_) {
+ on(
+ "%20(print(strip(display_total), 20))"
+ " %(!options.flat ? depth_spacer : \"\")"
+ "%-(partial_account(options.flat))\n");
+ });
+
OPTION(report_t, base);
OPTION_(report_t, basis, DO() { // -B
@@ -263,14 +270,29 @@ public:
parent->HANDLER(collapse).on();
});
- OPTION(report_t, csv_format_);
+ OPTION__(report_t, csv_format_, CTOR(report_t, csv_format_) {
+ on(
+ "%(quoted(date)),"
+ "%(quoted(payee)),"
+ "%(quoted(account)),"
+ "%(quoted(display_amount)),"
+ "%(quoted((cleared or entry.cleared) ?"
+ " \"*\" : ((pending or entry.pending) ? \"!\" : \"\"))),"
+ "%(quoted(code)),"
+ "%(quoted(join(note)))\n");
+ });
+
OPTION(report_t, current); // -c
OPTION_(report_t, daily, DO() {
parent->HANDLER(period_).prepend("daily");
});
- OPTION(report_t, date_format_); // -y
+ OPTION__(report_t, date_format_, // -y
+ CTOR(report_t, date_format_) {
+ on("%y-%b-%d");
+ });
+
OPTION(report_t, deviation); // -D
OPTION__
@@ -333,7 +355,10 @@ public:
#endif
});
- OPTION(report_t, equity_format_);
+ OPTION__(report_t, equity_format_, CTOR(report_t, equity_format_) {
+ on("\n%D %Y%C%P\n%/ %-34W %12t\n");
+ });
+
OPTION(report_t, flat);
OPTION(report_t, forecast_);
OPTION(report_t, format_); // -F
@@ -416,9 +441,27 @@ public:
});
OPTION(report_t, price_exp_); // -Z
- OPTION(report_t, prices_format_);
- OPTION(report_t, pricesdb_format_);
- OPTION(report_t, print_format_);
+
+ OPTION__(report_t, prices_format_, CTOR(report_t, prices_format_) {
+ on("%-.9(date) %-8(account) %12(strip(display_amount))\n");
+ });
+
+ OPTION__(report_t, pricesdb_format_, CTOR(report_t, pricesdb_format_) {
+ on("P %[%Y/%m/%d %H:%M:%S] %A %t\n");
+ });
+
+ OPTION__(report_t, print_format_, CTOR(report_t, print_format_) {
+ on(
+ "%(format_date(entry.date, \"%Y/%m/%d\"))"
+ "%(entry.cleared ? \" *\" : (entry.pending ? \" !\" : \"\"))"
+ "%(code ? \" (\" + code + \")\" : \"\") %(payee)%(entry.comment | \"\")\n"
+ " %(entry.uncleared ? (cleared ? \"* \" : (pending ? \"! \" : \"\")) : \"\")"
+ "%-34(account)"
+ " %12(calculated ? \"\" : strip(amount))%(comment | \"\")\n%/"
+ " %(entry.uncleared ? (cleared ? \"* \" : (pending ? \"! \" : \"\")) : \"\")"
+ "%-34(account)"
+ " %12(calculated ? \"\" : strip(amount))%(comment | \"\")\n%/\n");
+ });
OPTION_(report_t, quantity, DO() { // -O
parent->HANDLER(revalued).off();
@@ -434,7 +477,24 @@ public:
parent->HANDLER(limit_).append("real");
});
- OPTION(report_t, register_format_);
+ OPTION__(report_t, register_format_, CTOR(report_t, register_format_) {
+ on(
+ "%(print(date, date_width))"
+ " %(print(truncate(payee, payee_width), payee_width))"
+ " %(print(truncate(account, account_width, abbrev_len), account_width))"
+ " %(print(strip(display_amount), amount_width, "
+ "3 + date_width + payee_width + account_width + amount_width))"
+ " %(print(strip(display_total), total_width, "
+ "4 + date_width + payee_width + account_width + amount_width "
+ "+ total_width, true))\n%/"
+ "%(print(\" \", 2 + date_width + payee_width))"
+ "%(print(truncate(account, account_width, abbrev_len), account_width))"
+ " %(print(strip(display_amount), amount_width, 3 + date_width "
+ "+ payee_width + account_width + amount_width))"
+ " %(print(strip(display_total), total_width, 4 + date_width "
+ "+ payee_width + account_width + amount_width + total_width, true))\n");
+ });
+
OPTION(report_t, related); // -r
OPTION(report_t, related_all);
OPTION(report_t, revalued);