module Semian::PG::ClassMethods

def _iopts(*args) # rubocop:disable Metrics/AbcSize

rubocop:disable Metrics/AbcSize
def _iopts(*args) # rubocop:disable Metrics/AbcSize
  option_string = parse_connect_args(*args)
  iopts = conninfo_parse(option_string).each_with_object({}) do |h, o|
    o[h[:keyword].to_sym] = h[:val] if h[:val]
  end
  conndefaults.each_with_object({}) { |h, o| o[h[:keyword].to_sym] = h[:val] if h[:val] }.merge(iopts)
end

def connect_start(*args)

def connect_start(*args)
  conn = super
  conn.instance_variable_set(:@iopts, _iopts(*args))
  conn
end