45 lines
876 B
Ruby
45 lines
876 B
Ruby
|
module PaiementCic
|
||
|
class Config
|
||
|
attr_accessor :hmac_key, :tpe, :societe
|
||
|
attr_writer :target_url
|
||
|
|
||
|
def initialize(attributes = {}, &block)
|
||
|
if block_given?
|
||
|
configure(&block)
|
||
|
else
|
||
|
attributes.each do |name, value|
|
||
|
setter = "#{name}="
|
||
|
next unless respond_to?(setter)
|
||
|
send(setter, value)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def configure(&block)
|
||
|
yield self
|
||
|
end
|
||
|
|
||
|
def bank
|
||
|
@bank || DEFAULT_BANK
|
||
|
end
|
||
|
|
||
|
def bank=(value)
|
||
|
raise UnknownBankError unless END_POINTS.keys.include?(value.to_sym)
|
||
|
@bank = value
|
||
|
end
|
||
|
|
||
|
def env
|
||
|
@env || DEFAULT_ENV
|
||
|
end
|
||
|
|
||
|
def env=(value)
|
||
|
raise UnknownEnvError unless END_POINTS.first.last.include?(value.to_sym)
|
||
|
@env = value
|
||
|
end
|
||
|
|
||
|
def target_url
|
||
|
@target_url || END_POINTS[self.bank][self.env]
|
||
|
end
|
||
|
end
|
||
|
end
|