lib/gateway/post_notification.rb in stone_ecommerce-1.0.3 vs lib/gateway/post_notification.rb in stone_ecommerce-1.2.3
- old
+ new
@@ -1,29 +1,32 @@
require 'nori'
+module Gateway
+
# Class who handles Gateway post notification XML
-class PostNotification
+ 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)
+ # 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))
+ 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
+ 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
+ # 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
end
\ No newline at end of file