データの保存/読み込み in info ディレクトリ
info ディレクトリにデータを保存するためのクラス(?)を書いた。
黒魔術を使い手抜きをすることで、一行で出来た。
function Somali (n) let(V,[l,s,j,t]=liberator.eval('[loadPref,savePref,json,Object]',storage.newObject)) ({load:function(d)let(v=l(n,true,t))(V=v?v.value:d), save:function(v)s({store:true,name:n,serial:j.encode({value:v===undefined?V:v})})});
使い方は簡単。
// ストレージオブジェクト生成 let somali = new Somali('test-somali-storage'); // 保存されているオブジェクトをロード // 引数はデフォルト値 let setting = somali.load({eyes: 3, tails: 2}); // 値をいじくる liberator.log(setting); setting.tails++; setting.date = new Date().toString(); // 保存する // 条件がそろえば、save の引数は省略できる somali.save(setting);
_libly.js に入れようかと思ったけど、これはどうだろうか。駄目か。