Search subclasses from constants
This commit is contained in:
parent
a7dda449e8
commit
4e32a4ab81
Notes:
git
2021-02-22 13:24:48 +09:00
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user