Using a Config class to manage Google Apps Script's PropertiesService
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;
up vote
1
down vote
favorite
I created a Config class to manage the PropertiesService in Google Apps script. Right now it only uses the DocumentProperties, but it can easily be expanded to support the User and Script properties. The code is here on github (it's a little big for pasting here). The Config class is in the Helper.gs file.
It allows me to write Settings.PDF.save()
to get data from the PropertyService instead ofJSON.parse(PropertiesService.getDocumentProperties().getProperty("pdf")).save;
or Settings.PDF.save(true)
to set it.
Note: I know the log()
functions and comments are everywhere... I hope to clean that up in the future!
The actual question:
- The main thing I was to ask is if how I set this up is a good method to use. It seems to help make calling and setting properties easier, but I am not experience in JavaScript or functional language in general. I usually stick to OOD.
- Lastly, because this is my first Google Apps Script Addon I wanted to check if how I initialized my Settings variable (at the top of FormFusion.js) is a good/best practice.
PS: In case you were wondering the code is essentially a mail merge for forms. There are a few good ones out there already but most charge a fee to use them. I am creating it for an organization I volunteer with and whoever wishes to use it.
Main Section of Code - Helpers.gs
var Settings = Config(); //This is actually in FormFusion.gs
function Config()
var documentProperties = PropertiesService.getDocumentProperties();
var userProperties = PropertiesService.getUserProperties();
var devProperties = PropertiesService.getScriptProperties();
//If config is not setup use defaults...
setupDefaults(
config:
isSetup: false
,
pdf:
name: "",
location: "",
save: false,
email: false
,
doc:
name: "",
location: "",
save: false,
email: false
,
form:
markers: null
,
template:
id: "",
markers: null
);
var configSettings = getProp("document", "config");
this.PDF = new pdf();
this.DOC = new document();
this.FORM = new form();
this.TEMPLATE = new template();
this.isSetup = function(arg)
if(!arg)
return configSettings.isSetup;
else
configSettings.isSetup = arg;
setProp("document", "config", configSettings);
;
function form()
var propType = "document";
var key = "form";
var formSettings = getProp(propType, key);
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function template()
var propType = "document";
var key = "template";
var formSettings = getProp(propType, key);
this.id = function(arg)
if(!arg)
return formSettings.id;
else
formSettings.id = arg;
updateProp();
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function pdf()
var propType = "document";
var key = "pdf";
var pdfSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return pdfSettings.save;
else
pdfSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = pdfSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
pdfSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return pdfSettings.email;
else
pdfSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return pdfSettings.name;
else
pdfSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, pdfSettings);
function document()
var propType = "document";
var key = "doc";
var documentSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return documentSettings.save;
else
documentSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = documentSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
documentSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return documentSettings.email;
else
documentSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return documentSettings.name;
else
documentSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, documentSettings);
function email()
var propType = "document";
var key = "email";
var formSettings = getProp(propType, key);
function updateProp()
setProp(propType, key, formSettings);
function getProp(prop, key)
try
switch(prop)
case "document":
return JSON.parse(documentProperties.getProperty(key));
case "user":
return JSON.parse(userProperties.getProperty(key));
case "dev":
return JSON.parse(devProperties.getProperty(key));
default:
return "Can not find key: " + key;
catch(e)
log("getProp Error: " + e);
throw new e;
function setProp(prop, key, val)
try
switch(prop)
case "document":
documentProperties.setProperty(key, JSON.stringify(val));
break;
case "user":
userProperties.setProperty(key, JSON.stringify(val));
break;
case "dev":
devProperties.setProperty(key, JSON.stringify(val));
break;
default:
//TODO Throw error?
return "Can not find key: " + key;
catch(e)
log("setProp Error: " + e);
throw new e;
function setupDefaults(defaults)
if(!documentProperties.getKeys())
log("Setting defaults...");
for (var prop in defaults)
defaults[prop] = JSON.stringify(defaults[prop]);
documentProperties.setProperties(defaults);
The main function is Config()
it contains a pdf()
, document()
, form()
, and template()
classes that contain functions for the different properties I need. Within Config its own high level properties (such as isSetup()
) is the getProp()
and setProp()
functions that interact with the PropertiesService.
javascript google-apps-script
add a comment |Â
up vote
1
down vote
favorite
I created a Config class to manage the PropertiesService in Google Apps script. Right now it only uses the DocumentProperties, but it can easily be expanded to support the User and Script properties. The code is here on github (it's a little big for pasting here). The Config class is in the Helper.gs file.
It allows me to write Settings.PDF.save()
to get data from the PropertyService instead ofJSON.parse(PropertiesService.getDocumentProperties().getProperty("pdf")).save;
or Settings.PDF.save(true)
to set it.
Note: I know the log()
functions and comments are everywhere... I hope to clean that up in the future!
The actual question:
- The main thing I was to ask is if how I set this up is a good method to use. It seems to help make calling and setting properties easier, but I am not experience in JavaScript or functional language in general. I usually stick to OOD.
- Lastly, because this is my first Google Apps Script Addon I wanted to check if how I initialized my Settings variable (at the top of FormFusion.js) is a good/best practice.
PS: In case you were wondering the code is essentially a mail merge for forms. There are a few good ones out there already but most charge a fee to use them. I am creating it for an organization I volunteer with and whoever wishes to use it.
Main Section of Code - Helpers.gs
var Settings = Config(); //This is actually in FormFusion.gs
function Config()
var documentProperties = PropertiesService.getDocumentProperties();
var userProperties = PropertiesService.getUserProperties();
var devProperties = PropertiesService.getScriptProperties();
//If config is not setup use defaults...
setupDefaults(
config:
isSetup: false
,
pdf:
name: "",
location: "",
save: false,
email: false
,
doc:
name: "",
location: "",
save: false,
email: false
,
form:
markers: null
,
template:
id: "",
markers: null
);
var configSettings = getProp("document", "config");
this.PDF = new pdf();
this.DOC = new document();
this.FORM = new form();
this.TEMPLATE = new template();
this.isSetup = function(arg)
if(!arg)
return configSettings.isSetup;
else
configSettings.isSetup = arg;
setProp("document", "config", configSettings);
;
function form()
var propType = "document";
var key = "form";
var formSettings = getProp(propType, key);
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function template()
var propType = "document";
var key = "template";
var formSettings = getProp(propType, key);
this.id = function(arg)
if(!arg)
return formSettings.id;
else
formSettings.id = arg;
updateProp();
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function pdf()
var propType = "document";
var key = "pdf";
var pdfSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return pdfSettings.save;
else
pdfSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = pdfSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
pdfSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return pdfSettings.email;
else
pdfSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return pdfSettings.name;
else
pdfSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, pdfSettings);
function document()
var propType = "document";
var key = "doc";
var documentSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return documentSettings.save;
else
documentSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = documentSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
documentSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return documentSettings.email;
else
documentSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return documentSettings.name;
else
documentSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, documentSettings);
function email()
var propType = "document";
var key = "email";
var formSettings = getProp(propType, key);
function updateProp()
setProp(propType, key, formSettings);
function getProp(prop, key)
try
switch(prop)
case "document":
return JSON.parse(documentProperties.getProperty(key));
case "user":
return JSON.parse(userProperties.getProperty(key));
case "dev":
return JSON.parse(devProperties.getProperty(key));
default:
return "Can not find key: " + key;
catch(e)
log("getProp Error: " + e);
throw new e;
function setProp(prop, key, val)
try
switch(prop)
case "document":
documentProperties.setProperty(key, JSON.stringify(val));
break;
case "user":
userProperties.setProperty(key, JSON.stringify(val));
break;
case "dev":
devProperties.setProperty(key, JSON.stringify(val));
break;
default:
//TODO Throw error?
return "Can not find key: " + key;
catch(e)
log("setProp Error: " + e);
throw new e;
function setupDefaults(defaults)
if(!documentProperties.getKeys())
log("Setting defaults...");
for (var prop in defaults)
defaults[prop] = JSON.stringify(defaults[prop]);
documentProperties.setProperties(defaults);
The main function is Config()
it contains a pdf()
, document()
, form()
, and template()
classes that contain functions for the different properties I need. Within Config its own high level properties (such as isSetup()
) is the getProp()
and setProp()
functions that interact with the PropertiesService.
javascript google-apps-script
1
According to the site rules, code has to be included in the post itself. A couple hundred lines shouldn't be a problem.
â Pieter Witvoet
Feb 8 at 7:52
Okay! Even after reading all the posts on how to post I missed that part! I fixed it up so it should be good to go?
â Chris W
Feb 8 at 17:25
I've updated the questions to ask few parts. I really want to focus on how the Config object is setup. Is that a good way to do it?
â Chris W
Feb 9 at 6:28
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I created a Config class to manage the PropertiesService in Google Apps script. Right now it only uses the DocumentProperties, but it can easily be expanded to support the User and Script properties. The code is here on github (it's a little big for pasting here). The Config class is in the Helper.gs file.
It allows me to write Settings.PDF.save()
to get data from the PropertyService instead ofJSON.parse(PropertiesService.getDocumentProperties().getProperty("pdf")).save;
or Settings.PDF.save(true)
to set it.
Note: I know the log()
functions and comments are everywhere... I hope to clean that up in the future!
The actual question:
- The main thing I was to ask is if how I set this up is a good method to use. It seems to help make calling and setting properties easier, but I am not experience in JavaScript or functional language in general. I usually stick to OOD.
- Lastly, because this is my first Google Apps Script Addon I wanted to check if how I initialized my Settings variable (at the top of FormFusion.js) is a good/best practice.
PS: In case you were wondering the code is essentially a mail merge for forms. There are a few good ones out there already but most charge a fee to use them. I am creating it for an organization I volunteer with and whoever wishes to use it.
Main Section of Code - Helpers.gs
var Settings = Config(); //This is actually in FormFusion.gs
function Config()
var documentProperties = PropertiesService.getDocumentProperties();
var userProperties = PropertiesService.getUserProperties();
var devProperties = PropertiesService.getScriptProperties();
//If config is not setup use defaults...
setupDefaults(
config:
isSetup: false
,
pdf:
name: "",
location: "",
save: false,
email: false
,
doc:
name: "",
location: "",
save: false,
email: false
,
form:
markers: null
,
template:
id: "",
markers: null
);
var configSettings = getProp("document", "config");
this.PDF = new pdf();
this.DOC = new document();
this.FORM = new form();
this.TEMPLATE = new template();
this.isSetup = function(arg)
if(!arg)
return configSettings.isSetup;
else
configSettings.isSetup = arg;
setProp("document", "config", configSettings);
;
function form()
var propType = "document";
var key = "form";
var formSettings = getProp(propType, key);
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function template()
var propType = "document";
var key = "template";
var formSettings = getProp(propType, key);
this.id = function(arg)
if(!arg)
return formSettings.id;
else
formSettings.id = arg;
updateProp();
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function pdf()
var propType = "document";
var key = "pdf";
var pdfSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return pdfSettings.save;
else
pdfSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = pdfSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
pdfSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return pdfSettings.email;
else
pdfSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return pdfSettings.name;
else
pdfSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, pdfSettings);
function document()
var propType = "document";
var key = "doc";
var documentSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return documentSettings.save;
else
documentSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = documentSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
documentSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return documentSettings.email;
else
documentSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return documentSettings.name;
else
documentSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, documentSettings);
function email()
var propType = "document";
var key = "email";
var formSettings = getProp(propType, key);
function updateProp()
setProp(propType, key, formSettings);
function getProp(prop, key)
try
switch(prop)
case "document":
return JSON.parse(documentProperties.getProperty(key));
case "user":
return JSON.parse(userProperties.getProperty(key));
case "dev":
return JSON.parse(devProperties.getProperty(key));
default:
return "Can not find key: " + key;
catch(e)
log("getProp Error: " + e);
throw new e;
function setProp(prop, key, val)
try
switch(prop)
case "document":
documentProperties.setProperty(key, JSON.stringify(val));
break;
case "user":
userProperties.setProperty(key, JSON.stringify(val));
break;
case "dev":
devProperties.setProperty(key, JSON.stringify(val));
break;
default:
//TODO Throw error?
return "Can not find key: " + key;
catch(e)
log("setProp Error: " + e);
throw new e;
function setupDefaults(defaults)
if(!documentProperties.getKeys())
log("Setting defaults...");
for (var prop in defaults)
defaults[prop] = JSON.stringify(defaults[prop]);
documentProperties.setProperties(defaults);
The main function is Config()
it contains a pdf()
, document()
, form()
, and template()
classes that contain functions for the different properties I need. Within Config its own high level properties (such as isSetup()
) is the getProp()
and setProp()
functions that interact with the PropertiesService.
javascript google-apps-script
I created a Config class to manage the PropertiesService in Google Apps script. Right now it only uses the DocumentProperties, but it can easily be expanded to support the User and Script properties. The code is here on github (it's a little big for pasting here). The Config class is in the Helper.gs file.
It allows me to write Settings.PDF.save()
to get data from the PropertyService instead ofJSON.parse(PropertiesService.getDocumentProperties().getProperty("pdf")).save;
or Settings.PDF.save(true)
to set it.
Note: I know the log()
functions and comments are everywhere... I hope to clean that up in the future!
The actual question:
- The main thing I was to ask is if how I set this up is a good method to use. It seems to help make calling and setting properties easier, but I am not experience in JavaScript or functional language in general. I usually stick to OOD.
- Lastly, because this is my first Google Apps Script Addon I wanted to check if how I initialized my Settings variable (at the top of FormFusion.js) is a good/best practice.
PS: In case you were wondering the code is essentially a mail merge for forms. There are a few good ones out there already but most charge a fee to use them. I am creating it for an organization I volunteer with and whoever wishes to use it.
Main Section of Code - Helpers.gs
var Settings = Config(); //This is actually in FormFusion.gs
function Config()
var documentProperties = PropertiesService.getDocumentProperties();
var userProperties = PropertiesService.getUserProperties();
var devProperties = PropertiesService.getScriptProperties();
//If config is not setup use defaults...
setupDefaults(
config:
isSetup: false
,
pdf:
name: "",
location: "",
save: false,
email: false
,
doc:
name: "",
location: "",
save: false,
email: false
,
form:
markers: null
,
template:
id: "",
markers: null
);
var configSettings = getProp("document", "config");
this.PDF = new pdf();
this.DOC = new document();
this.FORM = new form();
this.TEMPLATE = new template();
this.isSetup = function(arg)
if(!arg)
return configSettings.isSetup;
else
configSettings.isSetup = arg;
setProp("document", "config", configSettings);
;
function form()
var propType = "document";
var key = "form";
var formSettings = getProp(propType, key);
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function template()
var propType = "document";
var key = "template";
var formSettings = getProp(propType, key);
this.id = function(arg)
if(!arg)
return formSettings.id;
else
formSettings.id = arg;
updateProp();
this.markers = function(arg)
if(!arg)
return formSettings.markers;
else
formSettings.markers = arg;
updateProp();
function updateProp()
setProp(propType, key, formSettings);
function pdf()
var propType = "document";
var key = "pdf";
var pdfSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return pdfSettings.save;
else
pdfSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = pdfSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
pdfSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return pdfSettings.email;
else
pdfSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return pdfSettings.name;
else
pdfSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, pdfSettings);
function document()
var propType = "document";
var key = "doc";
var documentSettings = getProp(propType, key);
this.save = function save(arg)
if(!arg)
return documentSettings.save;
else
documentSettings.save = arg;
updateProp();
this.location = function(arg)
if(!arg)
var location = documentSettings.location;
return location ? DriveApp.getFolderById(location) : DriveApp.getRootFolder();
else
documentSettings.location = arg;
updateProp();
this.email = function(arg)
if(!arg)
return documentSettings.email;
else
documentSettings.email = arg;
updateProp();
this.name = function(arg)
if(!arg)
return documentSettings.name;
else
documentSettings.name = arg;
updateProp();
function updateProp()
setProp(propType, key, documentSettings);
function email()
var propType = "document";
var key = "email";
var formSettings = getProp(propType, key);
function updateProp()
setProp(propType, key, formSettings);
function getProp(prop, key)
try
switch(prop)
case "document":
return JSON.parse(documentProperties.getProperty(key));
case "user":
return JSON.parse(userProperties.getProperty(key));
case "dev":
return JSON.parse(devProperties.getProperty(key));
default:
return "Can not find key: " + key;
catch(e)
log("getProp Error: " + e);
throw new e;
function setProp(prop, key, val)
try
switch(prop)
case "document":
documentProperties.setProperty(key, JSON.stringify(val));
break;
case "user":
userProperties.setProperty(key, JSON.stringify(val));
break;
case "dev":
devProperties.setProperty(key, JSON.stringify(val));
break;
default:
//TODO Throw error?
return "Can not find key: " + key;
catch(e)
log("setProp Error: " + e);
throw new e;
function setupDefaults(defaults)
if(!documentProperties.getKeys())
log("Setting defaults...");
for (var prop in defaults)
defaults[prop] = JSON.stringify(defaults[prop]);
documentProperties.setProperties(defaults);
The main function is Config()
it contains a pdf()
, document()
, form()
, and template()
classes that contain functions for the different properties I need. Within Config its own high level properties (such as isSetup()
) is the getProp()
and setProp()
functions that interact with the PropertiesService.
javascript google-apps-script
edited Feb 9 at 6:27
asked Feb 8 at 7:00
Chris W
1063
1063
1
According to the site rules, code has to be included in the post itself. A couple hundred lines shouldn't be a problem.
â Pieter Witvoet
Feb 8 at 7:52
Okay! Even after reading all the posts on how to post I missed that part! I fixed it up so it should be good to go?
â Chris W
Feb 8 at 17:25
I've updated the questions to ask few parts. I really want to focus on how the Config object is setup. Is that a good way to do it?
â Chris W
Feb 9 at 6:28
add a comment |Â
1
According to the site rules, code has to be included in the post itself. A couple hundred lines shouldn't be a problem.
â Pieter Witvoet
Feb 8 at 7:52
Okay! Even after reading all the posts on how to post I missed that part! I fixed it up so it should be good to go?
â Chris W
Feb 8 at 17:25
I've updated the questions to ask few parts. I really want to focus on how the Config object is setup. Is that a good way to do it?
â Chris W
Feb 9 at 6:28
1
1
According to the site rules, code has to be included in the post itself. A couple hundred lines shouldn't be a problem.
â Pieter Witvoet
Feb 8 at 7:52
According to the site rules, code has to be included in the post itself. A couple hundred lines shouldn't be a problem.
â Pieter Witvoet
Feb 8 at 7:52
Okay! Even after reading all the posts on how to post I missed that part! I fixed it up so it should be good to go?
â Chris W
Feb 8 at 17:25
Okay! Even after reading all the posts on how to post I missed that part! I fixed it up so it should be good to go?
â Chris W
Feb 8 at 17:25
I've updated the questions to ask few parts. I really want to focus on how the Config object is setup. Is that a good way to do it?
â Chris W
Feb 9 at 6:28
I've updated the questions to ask few parts. I really want to focus on how the Config object is setup. Is that a good way to do it?
â Chris W
Feb 9 at 6:28
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f187071%2fusing-a-config-class-to-manage-google-apps-scripts-propertiesservice%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
1
According to the site rules, code has to be included in the post itself. A couple hundred lines shouldn't be a problem.
â Pieter Witvoet
Feb 8 at 7:52
Okay! Even after reading all the posts on how to post I missed that part! I fixed it up so it should be good to go?
â Chris W
Feb 8 at 17:25
I've updated the questions to ask few parts. I really want to focus on how the Config object is setup. Is that a good way to do it?
â Chris W
Feb 9 at 6:28