adding FluidManipulationJSON

nix
Gerard 6 years ago
parent c1be03b8db
commit aec77e0b14

@ -0,0 +1,40 @@
+ FluidManipulationClient {
tmpJSONFilename{
^Platform.defaultTempDir++"tmp_fluid_dataset_"++
Date.localtime.stamp++".json";
}
dump {|action|
var filename = this.tmpJSONFilename;
action ?? {action = postit};
this.write(filename, {
action.value(filename.parseYAMLFile);
File.delete(filename);
});
}
load{|dict, action|
var filename = this.tmpJSONFilename;
var str = this.asJSON(dict);
File.use(filename, "w", { |f| f.write(this.asJSON(dict));});
this.read(filename, {
action.notNil.if{ action.value };
File.delete(filename);
});
}
asJSON{|d|
if(d.isString || d.isNumber){^d};
if(d.isKindOf(Dictionary),
{
^"{" ++ (
d.keys.asList.collect{|k|
k.asString.asCompileString ++ ":" + this.asJSON(d[k])
}).join(", ") ++ "}"
});
if(d.isKindOf(SequenceableCollection),
{
^"[" ++ d.collect({|x|this.asJSON(x)}).join(", ")++ "]";
});
}
}
Loading…
Cancel
Save