aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2013-09-13 13:52:15 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2013-09-13 13:52:15 +0200
commit57d2efaab4a22d663510d9cad2f77106f8c3eee4 (patch)
tree63f029626661626a77cdd906779e448dfe51c247
parent745868e980ebdcb555c5b2f8bd3fe67186e1cdf8 (diff)
Add ApplyToObjectField to Object.m
-rw-r--r--Tests/Object.mt8
-rw-r--r--Tools/CodeGen/Object.m6
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[];