Sha256: 3a16b90b84fb7c3dcd13bff13dd602480dfa3b05c8d492fa9a7347ca4c38ee65

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

module Almodovar
  module HttpAccessor
    def xml
      @xml ||= begin
        response = http.get(url_with_params)
        check_errors(response, url_with_params)
        Nokogiri::XML.parse(response.body).root
      end
    end

    def url_with_params
      @options[:expand] = @options[:expand].join(",") if @options[:expand].is_a?(Array)
      params = @options.map { |k, v| "#{k}=#{v}" }.join("&")
      params = "?#{params}" unless params.empty?
      @url + params
    end

    def http
      @http ||= Almodovar::HttpClient.new.tap do |session|
        session.send_timeout = Almodovar::default_options[:send_timeout]
        session.connect_timeout = Almodovar::default_options[:connect_timeout]
        session.receive_timeout = Almodovar::default_options[:receive_timeout]
        session.agent_name = Almodovar::default_options[:user_agent]

        if @auth
          session.username = @auth.username
          session.password = @auth.password
          session.auth_type = :digest
        end
      end
    end

    def check_errors(response, url)
      raise(Almodovar::HttpError.new(response, url)) if response.status >= 400
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
almodovar-1.5.3 lib/almodovar/http_accessor.rb
almodovar-1.5.2 lib/almodovar/http_accessor.rb
almodovar-1.5.1 lib/almodovar/http_accessor.rb
almodovar-1.5.0 lib/almodovar/http_accessor.rb