class Playwright::PlaywrightApi::ChannelOwnerWrapper
def detect_class_for(klass)
def detect_class_for(klass) class_name = expected_class_name_for(klass) if ::Playwright.const_defined?(class_name) ::Playwright.const_get(class_name) elsif superclass_exist?(klass) detect_class_for(klass.superclass) else nil end end
def expected_class_name_for(klass)
def expected_class_name_for(klass) klass.name.split("::ChannelOwners::").last end
def initialize(impl)
def initialize(impl) impl_class_name = impl.class.name unless impl_class_name.include?("::ChannelOwners::") raise "#{impl_class_name} is not ChannelOwners" end @impl = impl end
def superclass_exist?(klass)
def superclass_exist?(klass) ![::Playwright::ChannelOwner, Object].include?(klass.superclass) end
def wrap
def wrap api_class = detect_class_for(@impl.class) if api_class @impl._api ||= api_class.new(@impl) else raise NotImplementedError.new("Playwright::#{expected_class_name_for(@impl.class)} is not implemented") end end