@@ 18,5 18,5 @@
"scripts": {
"test": "zef test ."
},
- "version": "2020.01.06.1"
+ "version": "2020.01.07"
}=
\ No newline at end of file
@@ 29,20 29,22 @@ multi MAIN('bump', Bool :$breaking = False) {
class X::Ryov::BadUpdate is Exception {
method message() {
- "Bad update, both transform and value provided";
+ "Bad update";
}
}
sub update-meta6($path, $key, :$transform, :$value) {
my %meta6 = $path.slurp.&from-json;
- if $transform.defined and $value.defined {
- X::Ryov::BadUpdate.new.throw;
- }
- if $transform.defined {
- %meta6{$key} = $transform(%meta6{$key});
- }
- if $value.defined {
- %meta6{$key} = $value;
+ given ($transform, $value)>>.defined {
+ when * eqv any((True, True), (False, False)) {
+ X::Ryov::BadUpdate.new.throw;
+ }
+ when * eqv (True, False) {
+ %meta6{$key} = $transform(%meta6{$key});
+ }
+ when * eqv (False, True) {
+ %meta6{$key} = $value;
+ }
}
$path.spurt: to-json %meta6, :sorted-keys;
return %meta6{$key};