Skip to content
Double-entry accounting ledger file format converter
Raku
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
t
.gitignore
.hgignore
.peru.yml
.travis.yml
Build.pm6
META6.json
README.md
UNLICENSE

README.md

TXN::Remarshal

Double-entry accounting ledger file format converter

Synopsis

cmdline

read TXN from stdin, write JSON to stdout:

cat sample.txn | txn-remarshal -if=txn -of=json

read TXN from sample.txn, write JSON to sample.json:

txn-remarshal -i=sample.txn -if=txn -of=json -o=sample.json

raku

use TXN::Parser::ParseTree;
use TXN::Remarshal;

my Str $txn = Q:to/EOF/;
2014-01-01 "I started the year with $1000 in Bankwest"
  Assets:Personal:Bankwest:Cheque    $1000 USD
  Equity:Personal                    $1000 USD
EOF

# convenience wrappers
my Ledger $ledger = from-txn($txn);
my Str $txn = to-txn($ledger);

# txn ↔ ledger
my Ledger $ledger = remarshal($txn, :if<txn>, :of<ledger>);
my Str $txn = remarshal($ledger, :if<ledger>, :of<txn>);

# ledger ↔ hash
my %ledger = remarshal($ledger, :if<ledger>, :of<hash>);
my Ledger $ledger = remarshal(%ledger, :if<hash>, :of<ledger>);

# hash ↔ json
my Str $json = remarshal(%ledger, :if<hash>, :of<json>);
my %ledger = remarshal($json, :if<json>, :of<hash>);

Installation

Dependencies

Test Dependencies

To run the tests:

$ git clone https://github.com/atweiden/txn-remarshal && cd txn-remarshal
$ peru --file=.peru.yml --sync-dir="$PWD" sync
$ RAKULIB=lib prove -r -e raku

Licensing

This is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.

You can’t perform that action at this time.