# File lib/core/url.rb, line 31
    def initialize(url = nil, options = {})
      options[:defaults] = true

      if url
        @url = Cproton.pn_url_parse(url)
        if @url.nil?
          raise ::ArgumentError.new("invalid url: #{url}")
        end
      else
        @url = Cproton.pn_url
      end
      @scheme = Cproton.pn_url_get_scheme(@url)
      @username = Cproton.pn_url_get_username(@url)
      @password = Cproton.pn_url_get_password(@url)
      @host = Cproton.pn_url_get_host(@url)
      @port = Cproton.pn_url_get_port(@url)
      @path = Cproton.pn_url_get_path(@url)
      defaults
    end