diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-02-22 12:01:41 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-02-22 13:24:27 +0900 |
commit | 4e32a4ab81d510b1cb3cd45f7faafc917aa071cc (patch) | |
tree | 44fa6203c07b9daf76176d816286d4b97e413f33 /win32/mkexports.rb | |
parent | a7dda449e843ab1c208ba4d1bdbe269271fe66d2 (diff) | |
download | ruby-4e32a4ab81d510b1cb3cd45f7faafc917aa071cc.tar.gz |
Search subclasses from constants
Diffstat (limited to 'win32/mkexports.rb')
-rwxr-xr-x | win32/mkexports.rb | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/win32/mkexports.rb b/win32/mkexports.rb index 3c535211a9..70b7f3f228 100755 --- a/win32/mkexports.rb +++ b/win32/mkexports.rb @@ -9,14 +9,11 @@ end class Exports PrivateNames = /(?:Init_|InitVM_|ruby_static_id_|threadptr|_ec_|DllMain\b)/ - @@subclass = [] - def self.inherited(klass) - @@subclass << [/#{klass.name.sub(/.*::/, '').downcase}/i, klass] - end - def self.create(*args, &block) platform = RUBY_PLATFORM - pat, klass = @@subclass.find {|p, k| p =~ platform} + klass = constants.find do |p| + break const_get(p) if platform.include?(p.to_s.downcase) + end unless klass raise ArgumentError, "unsupported platform: #{platform}" end |