diff --git a/lib/active_fulfillment.rb b/lib/active_fulfillment.rb index 2669c64..85fb3f6 100644 --- a/lib/active_fulfillment.rb +++ b/lib/active_fulfillment.rb @@ -37,13 +37,11 @@ require_gem 'builder' end + require 'cgi' require 'net/https' -require 'active_fulfillment/lib/error' -require 'active_fulfillment/lib/requires_parameters' -require 'active_fulfillment/lib/connection' -require 'active_fulfillment/lib/posts_data' -require 'active_fulfillment/lib/country' +require 'rexml/document' +require 'active_merchant/common' require 'active_fulfillment/fulfillment/base' require 'active_fulfillment/fulfillment/response' diff --git a/lib/active_fulfillment/lib/error.rb b/lib/active_fulfillment/lib/error.rb deleted file mode 100644 index 53d1eb3..0000000 --- a/lib/active_fulfillment/lib/error.rb +++ /dev/null @@ -1,4 +0,0 @@ -module ActiveMerchant #:nodoc: - class ActiveMerchantError < StandardError #:nodoc: - end -end \ No newline at end of file diff --git a/lib/active_fulfillment/lib/post_data.rb b/lib/active_fulfillment/lib/post_data.rb deleted file mode 100644 index 7730dd4..0000000 --- a/lib/active_fulfillment/lib/post_data.rb +++ /dev/null @@ -1,22 +0,0 @@ -require 'cgi' - -class PostData < Hash - class_inheritable_accessor :required_fields, :instance_writer => false - self.required_fields = [] - - def []=(key, value) - return if value.blank? && !required?(key) - super - end - - def to_post_data - collect { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&") - end - - alias_method :to_s, :to_post_data - - private - def required?(key) - required_fields.include?(key) - end -end diff --git a/lib/active_merchant/common.rb b/lib/active_merchant/common.rb new file mode 100644 index 0000000..199ed45 --- /dev/null +++ b/lib/active_merchant/common.rb @@ -0,0 +1,13 @@ +module ActiveMerchant + autoload :Connection, 'active_merchant/common/connection' + autoload :Country, 'active_merchant/common/country' + autoload :ActiveMerchantError, 'active_merchant/common/error' + autoload :ConnectionError, 'active_merchant/common/error' + autoload :RetriableConnectionError, 'active_merchant/common/error' + autoload :ResponseError, 'active_merchant/common/error' + autoload :PostData, 'active_merchant/common/post_data' + autoload :PostsData, 'active_merchant/common/posts_data' + autoload :RequiresParameters, 'active_merchant/common/requires_parameters' + autoload :Utils, 'active_merchant/common/utils' + autoload :Validateable, 'active_merchant/common/validateable' +end \ No newline at end of file diff --git a/lib/active_fulfillment/lib/connection.rb b/lib/active_merchant/common/connection.rb similarity index 100% rename from lib/active_fulfillment/lib/connection.rb rename to lib/active_merchant/common/connection.rb diff --git a/lib/active_fulfillment/lib/country.rb b/lib/active_merchant/common/country.rb similarity index 100% rename from lib/active_fulfillment/lib/country.rb rename to lib/active_merchant/common/country.rb diff --git a/lib/active_merchant/common/error.rb b/lib/active_merchant/common/error.rb new file mode 100644 index 0000000..10c414f --- /dev/null +++ b/lib/active_merchant/common/error.rb @@ -0,0 +1,23 @@ +module ActiveMerchant #:nodoc: + class ActiveMerchantError < StandardError #:nodoc: + end + + class ConnectionError < ActiveMerchantError # :nodoc: + end + + class RetriableConnectionError < ConnectionError # :nodoc: + end + + class ResponseError < ActiveMerchantError # :nodoc: + attr_reader :response + + def initialize(response, message = nil) + @response = response + @message = message + end + + def to_s + "Failed with #{response.code} #{response.message if response.respond_to?(:message)}" + end + end +end \ No newline at end of file diff --git a/lib/active_merchant/common/post_data.rb b/lib/active_merchant/common/post_data.rb new file mode 100644 index 0000000..c81b63f --- /dev/null +++ b/lib/active_merchant/common/post_data.rb @@ -0,0 +1,24 @@ +require 'cgi' + +module ActiveMerchant + class PostData < Hash + class_inheritable_accessor :required_fields, :instance_writer => false + self.required_fields = [] + + def []=(key, value) + return if value.blank? && !required?(key) + super + end + + def to_post_data + collect { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&") + end + + alias_method :to_s, :to_post_data + + private + def required?(key) + required_fields.include?(key) + end + end +end \ No newline at end of file diff --git a/lib/active_fulfillment/lib/posts_data.rb b/lib/active_merchant/common/posts_data.rb similarity index 100% rename from lib/active_fulfillment/lib/posts_data.rb rename to lib/active_merchant/common/posts_data.rb diff --git a/lib/active_fulfillment/lib/requires_parameters.rb b/lib/active_merchant/common/requires_parameters.rb similarity index 100% rename from lib/active_fulfillment/lib/requires_parameters.rb rename to lib/active_merchant/common/requires_parameters.rb diff --git a/lib/active_fulfillment/lib/utils.rb b/lib/active_merchant/common/utils.rb similarity index 100% rename from lib/active_fulfillment/lib/utils.rb rename to lib/active_merchant/common/utils.rb diff --git a/lib/active_fulfillment/lib/validateable.rb b/lib/active_merchant/common/validateable.rb similarity index 100% rename from lib/active_fulfillment/lib/validateable.rb rename to lib/active_merchant/common/validateable.rb