class Playwright::PlaywrightApi::ApiImplementationWrapper
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) else nil end end
def expected_class_name_for(klass)
def expected_class_name_for(klass) # KeyboardImpl -> Keyboard # MouseImpl -> Mouse klass.name[0...-4].split("::").last end
def initialize(impl)
def initialize(impl) impl_class_name = impl.class.name unless impl_class_name.end_with?("Impl") raise "#{impl_class_name} is not Impl" end @impl = impl end
def wrap
def wrap api_class = detect_class_for(@impl.class) if api_class api_class.new(@impl) else raise NotImplementedError.new("Playwright::#{expected_class_name_for(@impl.class)} is not implemented") end end