Google Apps Script:
TOMLを活用する

どのように?

Google Apps Scriptは本質的にGoogleのアプリのスイートにアクセスできるJavaScriptなので、Google Apps Scriptで直接的にTOMLを扱うには少し工夫が必要です。Google Apps ScriptはネイティブにTOMLのパーシングをサポートしていませんが、JavaScriptのライブラリを活用するか、基本的なニーズのために簡単なパーサーを書くことができます。

例として、シンプルなTOML設定文字列をパースしてみましょう:

// TOML文字列
var tomlString = `
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
`;

// シンプルなTOMLからJSONへのパーサー関数
function parseTOML(tomlStr) {
  var result = {};
  var currentSection = result;
  tomlStr.split(/\r?\n/).forEach(line => {
    line = line.trim();
    if (line.startsWith('[')) { // 新しいセクション
      var sectionName = line.replace(/\[|\]/g, '');
      result[sectionName] = {};
      currentSection = result[sectionName];
    } else if (line) {
      var keyValue = line.split('=').map(part => part.trim());
      var key = keyValue[0];
      var value = eval(keyValue[1]); // 単純さのためにevalを使用; 本番コードでは注意
      currentSection[key] = value;
    }
  });
  return result;
}

// パーサーをテスト
var configObject = parseTOML(tomlString);
console.log(configObject);

console.logからのサンプル出力は、JSONオブジェクトに似ており、Google Apps Script内で構成プロパティにアクセスするのを容易にします:

{
  "database": {
    "server": "192.168.1.1",
    "ports": [8001, 8001, 8002],
    "connection_max": 5000,
    "enabled": true
  }
}

詳細分析

TOMLは、GitHubの創設者の一人であるTom Preston-Wernerによって作られ、設定ファイルに対してJSONよりも人間に優しいが、明確に解析可能であることを目指しています。できるだけシンプルであることを目標とし、多くの開発プロジェクトがそのコードベースで単純さと読みやすさを求める理念とよく一致しています。

Google Apps Scriptのコンテキストで、TOMLを使うには直接のサポートの欠如と手動またはサードパーティのライブラリを通じてのパースが必要とされるため、いくらかのオーバーヘッドがあります。小規模なプロジェクトやGoogleのエコシステムに深く統合されていないプロジェクトでは、代わりにJSONやスクリプトのプロパティ内のシンプルなキー・バリューペアの構造が十分であり、実装がより直接的である可能性があります。しかし、人間に優しい設定ファイルを優先し、すでにTOMLにコミットしているアプリケーションの場合、カスタムスクリプトを通じたTOMLパーシングの統合は、好ましい設定パラダイムから逸脱することなく、有用な柔軟性と保守性の層を追加します。