From 4910b532e0ccfc7cc55c2291ff861cb9d6eaf635 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Thu, 3 Dec 2020 22:53:37 +0800 Subject: [PATCH] [modularise] (gnucash engine) --- bindings/guile/business-core.scm | 14 ++++ bindings/guile/commodity-table.scm | 8 ++ bindings/guile/engine.scm | 118 +++++++++-------------------- bindings/guile/gnc-numeric.scm | 28 +++++++ 4 files changed, 85 insertions(+), 83 deletions(-) diff --git a/bindings/guile/business-core.scm b/bindings/guile/business-core.scm index c153e8f130..b88acc313f 100644 --- a/bindings/guile/business-core.scm +++ b/bindings/guile/business-core.scm @@ -17,8 +17,22 @@ ;; Boston, MA 02110-1301, USA gnu@gnu.org ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(define-module (gnucash engine business-core)) + +(eval-when (compile load eval expand) + (load-extension "libgnucash-guile" "gnc_guile_bindings_init")) + +(use-modules (sw_engine)) (use-modules (srfi srfi-1)) +(export gnc:owner-get-address) +(export gnc:owner-get-name-dep) +(export gnc:owner-get-address-dep) +(export gnc:owner-get-name-and-address-dep) +(export gnc:owner-get-owner-id) +(export gnc:owner-from-split) +(export gnc:split->owner) + (define (gnc:owner-get-address owner) (let ((type (gncOwnerGetType owner))) (cond diff --git a/bindings/guile/commodity-table.scm b/bindings/guile/commodity-table.scm index 6a63d63bc8..511c1eaac3 100644 --- a/bindings/guile/commodity-table.scm +++ b/bindings/guile/commodity-table.scm @@ -23,6 +23,14 @@ ;; Boston, MA 02110-1301, USA gnu@gnu.org ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(define-module (gnucash engine commodity-table)) + +(export GNC_COMMODITY_NS_CURRENCY) +(export GNC_COMMODITY_NS_NASDAQ) +(export GNC_COMMODITY_NS_NYSE) +(export GNC_COMMODITY_NS_AMEX) +(export GNC_COMMODITY_NS_EUREX) +(export GNC_COMMODITY_NS_MUTUAL) (define GNC_COMMODITY_NS_CURRENCY "CURRENCY") diff --git a/bindings/guile/engine.scm b/bindings/guile/engine.scm index 6b74ed3b59..18656abed4 100644 --- a/bindings/guile/engine.scm +++ b/bindings/guile/engine.scm @@ -19,93 +19,45 @@ (define-module (gnucash engine)) -(use-modules (srfi srfi-1) - (srfi srfi-13)) +(eval-when (compile load eval expand) + (load-extension "libgnucash-guile" "gnc_guile_bindings_init")) -(eval-when - (compile load eval expand) - (load-extension "libgnucash-guile" "gnc_guile_bindings_init")) -(use-modules (sw_engine)) +(use-modules (srfi srfi-1)) +(use-modules (srfi srfi-13)) +(use-modules (gnucash core-utils)) -; Export the swig-wrapped symbols in the public interface of this module -(let ((i (module-public-interface (current-module)))) - (module-use! i (resolve-interface '(sw_engine)))) - -;; gnc-numeric.scm -(export GNC-RND-FLOOR) -(export GNC-RND-CEIL) -(export GNC-RND-TRUNC) -(export GNC-RND-PROMOTE) -(export GNC-RND-ROUND-HALF-DOWN) -(export GNC-RND-ROUND-HALF-UP) -(export GNC-RND-ROUND) -(export GNC-RND-NEVER) -(export GNC-DENOM-AUTO) -(export GNC-DENOM-REDUCE) -(export GNC-DENOM-FIXED) -(export GNC-DENOM-LCD) -(export GNC-DENOM-SIGFIG) -(export GNC-DENOM-SIGFIGS) -(export GNC-ERROR-OK) -(export GNC-ERROR-ARG) -(export GNC-ERROR-OVERFLOW) -(export GNC-ERROR-DENOM-DIFF) -(export GNC-ERROR-REMAINDER) -(export ) -(export gnc:gnc-monetary?) -(export gnc:make-gnc-monetary) -(export gnc:gnc-monetary-commodity) -(export gnc:gnc-monetary-amount) -(export gnc:monetary-neg) - -;; commodity-table.scm -(export GNC_COMMODITY_NS_CURRENCY) -(export GNC_COMMODITY_NS_NASDAQ) -(export GNC_COMMODITY_NS_NYSE) -(export GNC_COMMODITY_NS_AMEX) -(export GNC_COMMODITY_NS_EUREX) -(export GNC_COMMODITY_NS_MUTUAL) - -; business-core.scm -(export gnc:owner-get-address) -(export gnc:owner-get-name-dep) -(export gnc:owner-get-address-dep) -(export gnc:owner-get-name-and-address-dep) -(export gnc:owner-get-owner-id) -(export gnc:owner-from-split) -(export gnc:split->owner) - -(load-from-path "gnucash/engine/gnc-numeric") -(load-from-path "gnucash/engine/commodity-table") -(load-from-path "gnucash/engine/business-core") - -;; A few account related utility functions which used to be in engine-utilities.scm -(define (gnc:account-map-descendants thunk account) - (issue-deprecation-warning "gnc:account-map-descendants is deprecated.") - (let ((descendants (or (gnc-account-get-descendants-sorted account) '()))) - (map thunk descendants))) - -(define (gnc:account-map-children thunk account) - (issue-deprecation-warning "gnc:account-map-children is deprecated.") - (let ((children (or (gnc-account-get-children-sorted account) '()))) - (map thunk children))) - -;; account related functions -;; helper for sorting of account list -(define (account-full-name