Sha256: b6d2fe228f3b7d44906c0db1dd4779f107a91c0c696933123355bf80ec0016c5
Contents?: true
Size: 1018 Bytes
Versions: 3
Compression:
Stored size: 1018 Bytes
Contents
require 'nori' # Class who handles Gateway post notification XML class PostNotification # This method parse the Xml sent by Gateway when notify a change in a transaction. # # @param request [String] XML received in the Gateway POST request. # @return [Hash<Symbol, String>] A hash collection containing the XML data parsed. def self.ParseNotification(xml) nori = Nori.new(:convert_tags_to => lambda { |tag| PostNotification.to_underscore(tag).to_sym }) xml_hash = nori.parse(CGI::unescapeHTML(xml)) return xml_hash end # Converts a string in Camel Case format to lower case with underscore. # # @param Example: 'StatusNotification' outputs 'status_notification' # @returns [String] lower case string separated with underscore def self.to_underscore(camel_case_string) return camel_case_string.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mundipagg_sdk-1.0.2 | lib/gateway/post_notification.rb |
mundipagg_sdk-1.0.1 | lib/gateway/post_notification.rb |
mundipagg_sdk-1.0.0 | lib/gateway/post_notification.rb |