Skip to content

Instantly share code, notes, and snippets.

@Max-Makhrov
Last active September 6, 2019 06:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Max-Makhrov/5d3bbf2158ee1426091e347c382258bc to your computer and use it in GitHub Desktop.
Save Max-Makhrov/5d3bbf2158ee1426091e347c382258bc to your computer and use it in GitHub Desktop.
// sample files are here: https://drive.google.com/drive/folders/1U4GrMHHyakOoCG3PVehkQD_AKADvFdVL
var C_FILE_TRIGGER_ID = ''; // Put your file id here if you plan to use it as Library
var C_SHEET_EVAL = '_Ini_';
var C_RANGE_VALS = 'C2:D';
var CCC_ = {}; // for holding constants
var C_DELIMETER1_NAME = 'STR_DELIMEER1';
// get settings from named range
function getSettings_(getAgain)
{
if ( typeof CCC_[C_DELIMETER1_NAME] !== 'undefined' && !getAgain) { return -1; }
// get data
if (C_FILE_TRIGGER_ID === '')
{
var file = SpreadsheetApp.getActive();
}
else
{
var file = SpreadsheetApp.openById(C_FILE_TRIGGER_ID);
}
CCC_.this_file = file;
var sheet = file.getSheetByName(C_SHEET_EVAL);
var range = sheet.getRange(C_RANGE_VALS);
var data = range.getValues();
for (var i = 0, l = data.length; i < l; i++)
{
CCC_[data[i][0]] = data[i][1];
}
return 0;
}
function test_getSettings()
{
var t = new Date();
Logger.log(getSettings_()); // 0
Logger.log(getSettings_()); // -1
Logger.log(getSettings_(true)); // 0
Logger.log(JSON.stringify(CCC_)); // ; {"STR_DELIMEER1":";","STR_DELIMEER2":"~","":""}
var t2 = new Date();
Logger.log('Time to get sets = ' + (t2 - t) + ' ms.'); // ~59 ms.
getSettings_();
Logger.log('Time to get sets second time = ' + (new Date() - t2) + ' ms.'); // ~1 ms.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment