Juerd Waalboer
b5efbcdff9
More tests
...
- calc.t: more tests for invalid syntax
- fileio.t was generated a while ago
2023-12-25 05:02:02 +01:00
Juerd Waalboer
dd47bfbdf7
Remove redundant code
...
Harmless but distracting leftovers from a previous, more complicated, approach.
2023-12-25 04:47:27 +01:00
Juerd Waalboer
3dab71fdbf
support simple arithmetic (only + and -) for monetary amounts
2023-12-25 00:33:46 +01:00
Juerd Waalboer
3470ebeb1c
Explicitly use Perl 5.32
...
Was already implicitly required (since 59387ddb
) because RevBank::Amount
uses the "isa" feature, which was introduced in Perl 5.32 (but no longer
experimental since 5.36, not 5.32 as the old comment said).
Perl 5.32 was released in June 2020, and ships with Debian bullseye
("oldstable") which was released in August 2021.
2023-12-12 00:28:17 +01:00
Juerd Waalboer
99154a4b62
Show deprecation notice for unbalanced entries
2023-11-24 06:22:30 +01:00
Juerd Waalboer
ff819c25e2
No space before first word when it is REJECTed
...
Cosmetic bug fix
2023-11-24 06:20:34 +01:00
Juerd Waalboer
dbe75efe7f
Remove references to deprecated calling convention
...
Deprecated 4 years ago, no longer supported since 2 years ago.
2023-11-24 05:52:04 +01:00
Juerd Waalboer
52749df5f3
Ignore all hook exceptions except in hook_checkout_prepare
...
A space had a custom plugin that died during hook_checkout, which caused
the CHECKOUT lines to be logged without the corresponding BALANCE, and
indeed no account balances were updated. While the plugin had a bug, it
should not cause a half transaction in RevBank.
After some hesitation, I went with ON ERROR RESUME NEXT because if a
hook throws an exception, that should not interfere with other plugins
(the hook can return ABORT if this it was intentional), including the
calling plugin. An error message is printed (but not logged... TODO: add
hook_plugin_fail to plugins/log) but the show must go on.
During hook_checkout_prepare, however, nothing is set in stone yet, so
this could be used for something that might die, and this instance of
call_hooks() is now the one place where a failing hook should result in
the transaction getting aborted. For this, call_hooks() now returns a
success status boolean. Maybe it would make sense in more places, but I
didn't identify any such calls yet.
RevBank::Cart->checkout used to return a success status boolean, but it
could just as well just die (indirectly, to abort the transaction) since
it can't be called a second time within the same transaction anyway
(because ->set_user must be called exactly once), so continuing with the
same transaction can't result in anything useful anyway.
In some places, error messages were slightly improved to contain a bit
more information.
2023-11-24 05:15:22 +01:00
Juerd Waalboer
0c2b24bdc1
Add Users.pod to README.md
2023-11-05 22:16:31 +01:00
Juerd Waalboer
a859b9640e
Document tiny semantics change for v4.2.0
2023-11-05 21:26:20 +01:00
Juerd Waalboer
aa589d59cb
Document RevBank::Users (accounts)
2023-11-05 21:19:39 +01:00
Juerd Waalboer
7dd94eda9b
Add assertions
...
There should already be external checks to prevent double entries in
revbank.accounts, but better safe than sorry.
2023-11-05 21:19:17 +01:00
Juerd Waalboer
d54428b092
Add support for user-accessible accounts that are excluded from grandtotal
2023-11-02 05:33:33 +01:00
Juerd Waalboer
df8c84672d
tail/users: fix warning when used with old log files
2023-11-02 04:45:03 +01:00
Juerd Waalboer
1156864fd2
v4.1.0
...
- New internal feature: $plugin->Tab($method)
- `adduser` has an additional check
- Tiny bug fixes
2023-11-02 04:39:57 +01:00
Juerd Waalboer
0f5cdca0f9
users: add missing tab completion for 'log' command
2023-11-02 03:58:02 +01:00
Juerd Waalboer
78d9cd916f
adduser: use tab completion lists to catch some more clashes
2023-11-02 03:57:46 +01:00
Juerd Waalboer
63b4144799
split: remove irrelevant tab completions
...
`split` was refactored out from `take`, and this was apparently left over
from the copy/paste.
2023-11-02 03:52:32 +01:00
Juerd Waalboer
8956d8a483
Move :Tab introspection from main:: to RevBank::Plugin
...
- Exposes the introspection as a public method.
- Removes undocumented support for NOABORT special-case.
2023-11-02 03:16:55 +01:00
Juerd Waalboer
4f0954b2dc
restart: only suppress warnings of the 'exec' category
...
"Statement unlikely to be reached" is the expected warning here.
2023-11-02 03:12:26 +01:00
Juerd Waalboer
4664245b8b
Add plugin 'sighup'
2023-11-02 03:12:17 +01:00
Juerd Waalboer
56b9db74ae
Add deprecation note to UPGRADING.md
...
The warnings in the log file already say "This will probably be a fatal
error in a future version of revbank" but not everyone watches log
files.
2023-09-21 03:05:24 +02:00
Juerd Waalboer
d8cde56888
UPGRADING.md: typo
2023-09-20 21:52:09 +02:00
Juerd Waalboer
b50bbfef96
Update comment
2023-09-20 21:11:19 +02:00
Juerd Waalboer
50e11f3ece
Rewrap UPGRADING.md
2023-09-20 20:23:02 +02:00
Juerd Waalboer
a2bdf4dd79
Nitpick in UPGRADING.md
2023-09-20 20:22:29 +02:00
Juerd Waalboer
c07f9f484e
update README
2023-09-20 20:20:46 +02:00
Juerd Waalboer
560242a4bc
Bump version to 4.0.0; change transaction ID scheme
2023-09-20 20:15:43 +02:00
Juerd Waalboer
e613ff28e6
Update default/example revbank.plugins
2023-09-20 20:13:16 +02:00
Juerd Waalboer
3ca6db357d
New plugin: adduser_note
2023-09-20 20:12:42 +02:00
Juerd Waalboer
f6338fe9fc
gtin: fix spamurl, support element string without parentheses
...
The spam url has uppercase letters.
2023-09-20 00:06:12 +02:00
Juerd Waalboer
827a600f8e
vat: remove unused variable
2023-09-18 15:30:00 +02:00
Juerd Waalboer
5a160fcff0
vat: match accounts case insensitively, show VAT for non-hidden accounts
...
Also fixed unintended masking of $vat variable.
2023-09-18 15:09:03 +02:00
Juerd Waalboer
e979c695c4
Document vat plugin
2023-09-18 15:08:55 +02:00
Juerd Waalboer
ac519c05c8
VAT plugin
...
No hackerspace probably needs this, but I just realised that
implementing VAT support would be very easy, so why not.
2023-09-18 05:15:13 +02:00
Juerd Waalboer
e6746afde5
Add rant
2023-09-18 01:57:37 +02:00
Juerd Waalboer
8f781dae6c
Add simple GS1 "Digital Link" and "Element String" support
...
Also has a regex for some known promotional URLs that don't adhere to
the Digital Link standard.
2023-09-18 01:37:35 +02:00
Juerd Waalboer
0dcacfc659
Upstream support for angel-foo input as alias for foo.
...
This replaces the revspace_angel plugin at RevSpace.
2023-09-18 01:35:11 +02:00
Juerd Waalboer
0245f80961
url: Print line but don't skip "no such product/..." error message
2023-09-18 01:33:35 +02:00
Juerd Waalboer
fbb178d5ac
Formal mechanism for retrying input
...
This allows for alias plugins with better error messages and better
logging than with the $_[2] =~ s/// hack.
2023-09-18 01:31:13 +02:00
Juerd Waalboer
b3cd3833f1
products: clear products cache before reading products list
...
Fixes bug where a product would remain available if it is removed from
revbank.products during runtime.
2023-09-18 00:04:00 +02:00
Juerd Waalboer
f2506bdc74
Reword documentation
...
"When things don't add up" sounds like RevBank (or Perl) has a broken
addition(+) operator... :)
2023-09-10 02:56:25 +02:00
Juerd Waalboer
be47e08dc6
Small documentation update
2023-09-10 02:52:55 +02:00
Juerd Waalboer
705a431ba2
Update documentation
...
This adds the missing file lib/RevBank.pod which was written some time
ago.
2023-09-10 02:41:55 +02:00
Juerd Waalboer
59387ddba4
Use formerly experimental Perl features with "use experimental"
...
This is semantically equivalent to use feature + no warnings, but less
noisy. I've also added comments to indicate when the line can be
removed.
2023-09-10 02:13:33 +02:00
Juerd Waalboer
c465ae1445
Update README.md
2023-09-10 02:05:03 +02:00
Juerd Waalboer
f4e7d5660e
revbank2beancount: reword comment
2023-09-10 02:03:25 +02:00
Juerd Waalboer
62aae74dfb
Script to convert RevBank data to Beancount
2023-08-31 03:04:12 +02:00
Juerd Waalboer
6f110ee783
Update shebang to use /usr/bin/env
2023-08-21 03:43:52 +02:00
Juerd Waalboer
c43764afbb
Deal with @_ in signatured sub being experimental in Perl 5.36
2023-07-17 21:56:13 +02:00