Allow for easy OS detection within Ruby scripts

This commit is contained in:
Vinyl Darkscratch 2018-05-03 22:10:59 -07:00
parent e77c7bce4a
commit 77b419d30a
3 changed files with 15 additions and 0 deletions

View file

@ -107,6 +107,7 @@ void oneshotBindingInit()
VALUE msg = rb_define_module_under(module, "Msg");
// Constants
rb_const_set(module, rb_intern("OS"), rb_str_new2(shState->oneshot().os().c_str()));
rb_const_set(module, rb_intern("USER_NAME"), rb_str_new2(shState->oneshot().userName().c_str()));
rb_const_set(module, rb_intern("SAVE_PATH"), rb_str_new2(shState->oneshot().savePath().c_str()));
rb_const_set(module, rb_intern("DOCS_PATH"), rb_str_new2(shState->oneshot().docsPath().c_str()));

View file

@ -49,6 +49,7 @@ struct OneshotPrivate
SDL_Window *window;
// String data
std::string os;
std::string lang;
std::string userName;
std::string savePath;
@ -183,6 +184,13 @@ Oneshot::Oneshot(RGSSThreadData &threadData) :
p->winPosChanged = false;
p->allowExit = true;
p->exiting = false;
#ifdef OS_W32
p->os = "windows";
#elif defined OS_OSX
p->os = "macos";
#else
p->os = "linux";
#endif
/********************
* USERNAME/DOCS PATH
@ -373,6 +381,11 @@ void Oneshot::update()
}
}
const std::string &Oneshot::os() const
{
return p->os;
}
const std::string &Oneshot::lang() const
{
return p->lang;

View file

@ -49,6 +49,7 @@ public:
void update();
//Accessors
const std::string &os() const;
const std::string &lang() const;
const std::string &userName() const;
const std::string &savePath() const;