Module: Parsbank
- Defined in:
- lib/db_setup.rb,
lib/parsbank.rb,
lib/parsbank/soap.rb,
lib/parsbank/gates.rb,
lib/parsbank/version.rb,
lib/parsbank/restfull.rb,
lib/parsbank/zibal/zibal.rb,
lib/parsbank/mellat/mellat.rb,
lib/parsbank/binance/binance.rb,
lib/parsbank/nobitex/nobitex.rb,
lib/parsbank/zarinpal/zarinpal.rb,
lib/parsbank/transaction_verify.rb,
lib/parsbank/transaction_request.rb
Defined Under Namespace
Classes: Binance, DBSetup, Error, Gates, Mellat, Nobitex, Restfull, SOAP, TransactionRequest, TransactionVerify, Zarinpal, Zibal
Constant Summary
collapse
- VERSION =
'0.0.8'
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
Returns the value of attribute configuration.
26
27
28
|
# File 'lib/parsbank.rb', line 26
def configuration
@configuration
end
|
Class Method Details
.available_gateways_list ⇒ Object
42
43
44
|
# File 'lib/parsbank.rb', line 42
def self.available_gateways_list
load_secrets_yaml.select { |_, value| value['enabled'] }
end
|
29
30
31
32
|
# File 'lib/parsbank.rb', line 29
def self.configure
self.configuration ||= Configuration.new
yield configuration
end
|
.gateways_list ⇒ Object
38
39
40
|
# File 'lib/parsbank.rb', line 38
def self.gateways_list
load_secrets_yaml
end
|
.gateways_list_shortcode(args = {}) ⇒ Object
79
80
81
82
83
|
# File 'lib/parsbank.rb', line 79
def self.gateways_list_shortcode(args = {})
ERB.new(File.read(File.join(__dir__, 'tmpl', 'bank_list.html.erb'))).result(binding).gsub(/(?:\n\r?|\r\n?)/, '').gsub(/>\s+</, '><').gsub(
/\s+/, ' '
).strip
end
|
.initialize! ⇒ Object
54
55
56
57
58
59
60
|
# File 'lib/parsbank.rb', line 54
def self.initialize!
I18n.load_path += Dir.glob(File.join(__dir__, 'locales', '*.yml'))
I18n.available_locales = i[en fa]
I18n.enforce_available_locales = false
Parsbank::DBSetup.establish_connection
end
|
.initialize_in_rails ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/parsbank.rb', line 46
def self.initialize_in_rails
return unless defined?(Rails)
ActiveSupport.on_load(:after_initialize) do
Parsbank.initialize!
end
end
|
.load_secrets_yaml ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/parsbank.rb', line 62
def self.load_secrets_yaml
secrets = YAML.load_file(Parsbank.configuration.secrets_path)
raise "Error: Invalid format in #{Parsbank.configuration.secrets_path}." unless secrets.is_a?(Hash)
secrets.each_key do |bank_key|
unless supported_psp.keys.include?(bank_key.to_s)
raise "#{bank_key.capitalize} in #{Parsbank.configuration.secrets_path} is not supported by ParsBank. \nSupported Banks: #{supported_psp.keys.join(', ')}"
end
end
secrets
rescue Errno::ENOENT
raise "Error: Secrets file not found at #{Parsbank.configuration.secrets_path}."
rescue Psych::SyntaxError => e
raise "Error: YAML syntax issue in #{Parsbank.configuration.secrets_path}: #{e.message}"
end
|
.supported_psp ⇒ Object
34
35
36
|
# File 'lib/parsbank.rb', line 34
def self.supported_psp
JSON.parse(File.read(File.join(__dir__, 'psp.json')))
end
|