Sha256: 70ed1ec8e7609391db9d1d0deab3f4c40fc15ebf238ea106f709823cedd295dc

Contents?: true

Size: 1.75 KB

Versions: 8

Compression:

Stored size: 1.75 KB

Contents

module ActiveMerchant #:nodoc:
  module PostsData  #:nodoc:

    def self.included(base)
      base.superclass_delegating_accessor :ssl_strict
      base.ssl_strict = true
      
      base.class_attribute :retry_safe
      base.retry_safe = false

      base.superclass_delegating_accessor :open_timeout
      base.open_timeout = 60

      base.superclass_delegating_accessor :read_timeout
      base.read_timeout = 60
      
      base.superclass_delegating_accessor :logger
      base.superclass_delegating_accessor :wiredump_device
    end
    
    def ssl_get(endpoint, headers={})
      ssl_request(:get, endpoint, nil, headers)
    end
    
    def ssl_post(endpoint, data, headers = {})
      ssl_request(:post, endpoint, data, headers)
    end

    def ssl_request(method, endpoint, data, headers)
      handle_response(raw_ssl_request(method, endpoint, data, headers))
    end

    def raw_ssl_request(method, endpoint, data, headers = {})
      connection = Connection.new(endpoint)
      connection.open_timeout = open_timeout
      connection.read_timeout = read_timeout
      connection.retry_safe   = retry_safe
      connection.verify_peer  = ssl_strict
      connection.logger       = logger
      connection.tag          = self.class.name
      connection.wiredump_device = wiredump_device
      
      connection.pem          = @options[:pem] if @options
      connection.pem_password = @options[:pem_password] if @options

      connection.ignore_http_status = @options[:ignore_http_status] if @options
      
      connection.request(method, data, headers)
    end

    private

    def handle_response(response)
      case response.code.to_i
      when 200...300
        response.body
      else
        raise ResponseError.new(response)
      end
    end
    
  end
end

Version data entries

8 entries across 8 versions & 5 rubygems

Version Path
activemerchant-1.17.0 lib/active_merchant/common/posts_data.rb
yetanothernguyen-activemerchant-1.16.0 lib/active_merchant/common/posts_data.rb
activemerchant-1.16.0 lib/active_merchant/common/posts_data.rb
gonow-activemerchant-1.15.0 lib/active_merchant/common/posts_data.rb
bitfluent-activemerchant-1.15.1 lib/active_merchant/common/posts_data.rb
activemerchant-kiddy-1.15.0.kiddy.1 lib/active_merchant/common/posts_data.rb
activemerchant-kiddy-1.15.0.kiddy lib/active_merchant/common/posts_data.rb
activemerchant-1.15.0 lib/active_merchant/common/posts_data.rb