diff --git a/contrib/ruby/lib/trilogy.rb b/contrib/ruby/lib/trilogy.rb index 418e8b04..45e2d025 100644 --- a/contrib/ruby/lib/trilogy.rb +++ b/contrib/ruby/lib/trilogy.rb @@ -8,6 +8,7 @@ class Trilogy def initialize(options = {}) + options[:port] = options[:port].to_i if options.key?(:port) mysql_encoding = options[:encoding] || "utf8mb4" encoding = Trilogy::Encoding.find(mysql_encoding) charset = Trilogy::Encoding.charset(mysql_encoding) diff --git a/contrib/ruby/test/client_test.rb b/contrib/ruby/test/client_test.rb index 5c188cc6..fe585704 100644 --- a/contrib/ruby/test/client_test.rb +++ b/contrib/ruby/test/client_test.rb @@ -30,12 +30,6 @@ def test_trilogy_connect_with_native_password_auth_switch ensure_closed client end - def test_trilogy_connect_tcp_fixnum_port - assert_raises TypeError do - new_tcp_client port: "13306" - end - end - def test_trilogy_connect_tcp_to_wrong_port e = assert_raises Trilogy::ConnectionError do new_tcp_client port: 13307 @@ -1057,4 +1051,17 @@ def test_character_encoding_handles_binary_queries assert_equal expected.dup.force_encoding(Encoding::Windows_31J), result assert_equal Encoding::Windows_31J, result.encoding end + + def test_connection_options_casting + options = { + host: DEFAULT_HOST, + port: DEFAULT_PORT.to_s, + username: DEFAULT_USER, + password: DEFAULT_PASS, + ssl: "1", + } + client = new_tcp_client(**options) + + assert client.query("SELECT 1") + end end