Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 OS Detection via Ruby
#1
OS Detection via Ruby
Version 1.2



Description
While most RPGMaker games are designed for users of the Windows Platform, not everyone who plays games are Windows users. So what of those custom scripts that use the Win32DLL? They won't work on their PCs! This scriptette will determine what OS the player is using. And if used properly, a scripter/coder can write something to turn off those custom Win32API dll systems (if possible for their game).



Script
The Code



Example Calls
OS_Detect.execute to generate it.
p OS_Detect.version to print it after generating.
This generates the result of :windows for most users



Notes
Normally, if you run RUBY_PLATFORM while using Java, your response would always be 'Java'.... even if running Mac or Windows. This version instead demands a comparison and should distinguish even if running Java as well.



Compatability
Since it contains no modules or classes, it should work with all Ruby-Based RPGMaker Engines.



Credits and Thanks
Well, to enough people at stackoverflow that said not to use the RUBY_PLATFORM command. But specific thanks to Thomas Enebo at Stack Overflow that wrote the basis for this script. Not that he helped me figure out the RbConfig file.



Terms of Use
Free for use, even within commercial products. But due credit to both myself and Thomas Enebo is required.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png] [Image: liM4ikn.png] [Image: fdzKgZA.png] [Image: sj0H81z.png]
[Image: QL7oRau.png] [Image: uSqjY09.png] [Image: GAA3qE9.png] [Image: 2Hmnx1G.png] [Image: BwtNdKw.png%5B]
Above are clickable links

Reply }
#2
So far it only includes a scepter's defined hash value that isn't reliable at all. For example, if I copy and paste it in my projects located in my ext4 partition, it will say it's running on Windows even if it's actually my Kubuntu Bionic, a GNU/Linux OS. It might only work properly if you had installed Ruby on your OS already. Something that might be more reliable might be the availability of certain Ruby methods only available for Linux compatible OS's, check its permission system or the existence of specific default directories or even better, getting access to the host OS's PATH variable and extract one of its default directories for testing purposes.
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply }
#3
You have a point. Unfortunately, every RBConfig I found compiled was for a Windows environment... so everything I searched was skewed in that direction. So.... I just took another.
BUMP
to Version 1.1
True enough, I'm back to using RUBY_PLATFORM, but I'm not asking it to return which system. I'm forcing a comparison to specific systems and ignoring any Java returns.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png] [Image: liM4ikn.png] [Image: fdzKgZA.png] [Image: sj0H81z.png]
[Image: QL7oRau.png] [Image: uSqjY09.png] [Image: GAA3qE9.png] [Image: 2Hmnx1G.png] [Image: BwtNdKw.png%5B]
Above are clickable links

Reply }
#4
Or just use the short version of it. No need to credit me since it only excludes insignificant details not really needed to run the script

Code:
class OSError < StandardError
end
module OS_Detect
  def self.execute
    @os ||= case RUBY_PLATFORM
    when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
      :windows
    when /darwin|mac os/
      :macosx
    when /linux/
      :linux
    when /solaris|bsd/
      :unix
    else
      raise OSError, "unknown os: #{RUBY_PLATFORM.inspect}"
    end
  end
end

I had to replace the error message he provided because it would cause you to read a non related error message instead! Laughing Something like NameError: No Error class or module found. Laughing + Tongue sticking out
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply }
#5
Well, I did have some thoughts about that case...end myself. Why???....

BUMP
to Version 1.2

The system has gone through a subtle change, requiring TWO separate calls now. The first executes the system that determines which OS you are running. The second acquires the value for use in whatever script that requires it.

And what's extra special? It has been set up so it only allows you to generate the value ONCE! Meant to only execute once when the game engine starts, hitting the F12 key would force it to execute a second time and it would generate an 'unknown OS' error. This new version prevents that.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png] [Image: liM4ikn.png] [Image: fdzKgZA.png] [Image: sj0H81z.png]
[Image: QL7oRau.png] [Image: uSqjY09.png] [Image: GAA3qE9.png] [Image: 2Hmnx1G.png] [Image: BwtNdKw.png%5B]
Above are clickable links

Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   AKM Add-On #1: NF Key State Detection DerVVulfman 0 4,237 03-05-2008, 06:39 AM
Last Post: DerVVulfman



Users browsing this thread: