PROTON-1064: [ruby] extend standard ruby URI with amqp/amqps schemes Simple URI.Generic schemes with the correct default ports, plus a helper function amqp_uri() to default a URI with no scheme to AMQP.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/8155c5af Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/8155c5af Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/8155c5af Branch: refs/heads/master Commit: 8155c5af3c6f63a585354034089a72d7dac13895 Parents: 9bb1baa Author: Alan Conway <acon...@redhat.com> Authored: Sat Oct 28 17:24:35 2017 +0100 Committer: Alan Conway <acon...@redhat.com> Committed: Tue Nov 7 13:31:51 2017 -0500 ---------------------------------------------------------------------- proton-c/bindings/ruby/lib/util/uri.rb | 27 ++++++++++++++++++ proton-c/bindings/ruby/tests/test_uri.rb | 40 +++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/8155c5af/proton-c/bindings/ruby/lib/util/uri.rb ---------------------------------------------------------------------- diff --git a/proton-c/bindings/ruby/lib/util/uri.rb b/proton-c/bindings/ruby/lib/util/uri.rb new file mode 100644 index 0000000..0820746 --- /dev/null +++ b/proton-c/bindings/ruby/lib/util/uri.rb @@ -0,0 +1,27 @@ +#-- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +#++ + +require 'uri' + +module URI + class AMQP < Generic; DEFAULT_PORT = 5672; end + @@schemes['AMQP'] = AMQP + class AMQPS < Generic; DEFAULT_PORT = 5671; end + @@schemes['AMQPS'] = AMQPS +end http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/8155c5af/proton-c/bindings/ruby/tests/test_uri.rb ---------------------------------------------------------------------- diff --git a/proton-c/bindings/ruby/tests/test_uri.rb b/proton-c/bindings/ruby/tests/test_uri.rb new file mode 100644 index 0000000..e5279d8 --- /dev/null +++ b/proton-c/bindings/ruby/tests/test_uri.rb @@ -0,0 +1,40 @@ +#-- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +#++ + +require 'minitest/autorun' +require 'qpid_proton' + +class TestURI < Minitest::Test + + def amqp_uri(u) Qpid::Proton::amqp_uri(u); end + + def test_amqp_uri + assert_equal URI("amqp:").port, 5672 + assert_equal URI("amqps:").port, 5671 + assert_equal URI("amqp://user:pass@host:1234/path"), amqp_uri("//user:pass@host:1234/path") + assert_equal URI("amqp://user:pass@host:1234/path"), amqp_uri("amqp://user:pass@host:1234/path") + assert_equal URI("amqps://user:pass@host:1234/path"), amqp_uri("amqps://user:pass@host:1234/path") + assert_equal URI("amqp://host:1234/path"), amqp_uri("//host:1234/path") + assert_equal URI("amqp://host:1234"), amqp_uri("//host:1234") + assert_equal URI("amqp://host"), amqp_uri("//host") + assert_equal URI("amqp://:1234"), amqp_uri("//:1234") + assert_raises(URI::BadURIError) { amqp_uri("http://foo") } + end + +end --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org