Sha256: ecbc1c0406dfe75dcd1f391a71a6a7c7275ff755215c9ee88e24d3ae5413afaa

Contents?: true

Size: 738 Bytes

Versions: 3

Compression:

Stored size: 738 Bytes

Contents

module Epay
  module Api
    class Response
      attr_accessor :raw_response, :action
      
      def initialize(raw_response, action)
        @raw_response = raw_response
        @action = action
      end
      
      def success?
        code == 200 && data["#{action}Result"] == "true"
      end
      
      def data
        if headers[:content_type] =~ %r(text/xml) && code == 200
          # Remove envelope and XML namespace objects
          Hash.from_xml(raw_response.to_s).first.last["Body"]["#{action}Response"].reject { |k,v| k.match(/xmlns/) }
        else
          raw_response.to_s
        end
      end
      
      def method_missing(method, *args)
        raw_response.send(method, *args)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
epay-0.0.6 lib/epay/api/response.rb
epay-0.0.5 lib/epay/api/response.rb
epay-0.0.4 lib/epay/api/response.rb