lib/pxpay/notification.rb in pxpay-0.1.1 vs lib/pxpay/notification.rb in pxpay-0.1.2
- old
+ new
@@ -1,11 +1,10 @@
module Pxpay
# The return notification from Payment Express
class Notification
- mattr_accessor :order_details
attr_accessor :response
-
+ # Create a new Notification from Payment Express' response
def initialize(response)
@response = response
end
# Return the xml response
@@ -14,15 +13,26 @@
end
# Return the response as a hash
def to_hash
require 'nokogiri'
- doc = Nokogiri::XML(self.response)
+ doc = ::Nokogiri::XML( self.response )
hash = {}
doc.at_css("Response").element_children.each do |attribute|
hash[attribute.name.underscore.to_sym] = attribute.inner_text
end
hash[:valid] = doc.at_css("Response")['valid']
hash
end
end
+end
+
+class String
+ # A copy of Rails' ActiveSupport underscore method
+ def underscore
+ self.gsub(/::/, '/').
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
+ tr("-", "_").
+ downcase
+ end
end
\ No newline at end of file