module Pesapal # Hooks Pesapal to extend Rails and/or modify the initialization process. class Railtie < Rails::Railtie # Loads pesapal credentials from initializer file depending on environment # and fallback to default values if anything goes wrong. initializer 'pesapal.load_credentials' do path_to_yaml = "#{Rails.root}/config/pesapal.yml" if File.exist?(path_to_yaml) begin config.pesapal_credentials = YAML.load(IO.read(path_to_yaml))[Rails.env] rescue Errno::ENOENT logger.info('YAML configuration file couldn\'t be found.') return rescue Psych::SyntaxError logger.info('YAML configuration file contains invalid syntax. Will use using defaults.') return end else config.pesapal_credentials = { callback_url: 'http://0.0.0.0:3000/pesapal/callback', consumer_key: '', consumer_secret: '' } end end end end