diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-09-13 13:52:15 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-09-13 13:52:15 +0200 |
commit | 57d2efaab4a22d663510d9cad2f77106f8c3eee4 (patch) | |
tree | 63f029626661626a77cdd906779e448dfe51c247 | |
parent | 745868e980ebdcb555c5b2f8bd3fe67186e1cdf8 (diff) |
Add ApplyToObjectField to Object.m
-rw-r--r-- | Tests/Object.mt | 8 | ||||
-rw-r--r-- | Tools/CodeGen/Object.m | 6 |
2 files changed, 14 insertions, 0 deletions
diff --git a/Tests/Object.mt b/Tests/Object.mt index 3345fb2..2ac151c 100644 --- a/Tests/Object.mt +++ b/Tests/Object.mt @@ -69,3 +69,11 @@ Test[ , TestID->"JoinObjectField-Exists" ] + +Test[ + ApplyToObjectField[NewObject[Obj, {"Key1" -> 1, "Key2" -> 2}], "Key1", g] + , + Obj["Key1" -> g[1], "Key2" -> 2] + , + TestID->"ApplyToObjectField" +] diff --git a/Tools/CodeGen/Object.m b/Tools/CodeGen/Object.m index 957af54..63ab2bf 100644 --- a/Tools/CodeGen/Object.m +++ b/Tools/CodeGen/Object.m @@ -25,6 +25,7 @@ SetObjectField; GetObjectField; AppendObjectField; JoinObjectField; +ApplyToObjectField; Begin["`Private`"]; @@ -62,6 +63,11 @@ DefFn[ JoinObjectField[obj_, field_String, values_List] := SetObjectField[obj, field, Join[GetObjectField[obj, field], values]]]; +DefFn[ + ApplyToObjectField[obj_, field_String, f_] := + SetObjectField[obj, field, f[GetObjectField[obj, field]]]]; + + End[]; EndPackage[]; |