Permalink
Fetching contributors…
Cannot retrieve contributors at this time
56 lines (44 sloc) 1.41 KB
module PagSeguro
extend self
# PagSeguro receives all invoices in this URL. If developer mode is enabled,
# then the URL will be /pagseguro_developer/invoice
GATEWAY_URL = "https://pagseguro.uol.com.br/checkout/checkout.jhtml"
# Hold the config/pagseguro.yml contents
@@config = nil
# The path to the configuration file
def config_file
Rails.root.join("config/pagseguro.yml")
end
# Check if configuration file exists.
def config?
File.exist?(config_file)
end
# Load configuration file.
def config
raise MissingConfigurationError, "file not found on #{config_file.inspect}" unless config?
# load file if is not loaded yet
@@config ||= YAML.load_file(config_file)
# raise an exception if the environment hasn't been set
# or if file is empty
if @@config == false || !@@config[Rails.env]
raise MissingEnvironmentError, ":#{Rails.env} environment not set on #{config_file.inspect}"
end
# retrieve the environment settings
@@config[Rails.env]
end
# The gateway URL will point to a local URL is
# app is running in developer mode
def gateway_url
if developer?
"/pagseguro_developer"
else
GATEWAY_URL
end
end
# Reader for the `developer` configuration
def developer?
config? && config["developer"] == true
end
class MissingEnvironmentError < StandardError; end
class MissingConfigurationError < StandardError; end
end