Class: CFONB::Statement
- Inherits:
-
Object
- Object
- CFONB::Statement
- Defined in:
- lib/cfonb/statement.rb
Instance Method Summary collapse
- #iban ⇒ Object
-
#initialize(line) ⇒ Statement
constructor
A new instance of Statement.
- #merge_new_balance(line) ⇒ Object
- #raw ⇒ Object
- #rib ⇒ Object
Constructor Details
#initialize(line) ⇒ Statement
Returns a new instance of Statement.
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/cfonb/statement.rb', line 15 def initialize(line) self.begin_raw = line.body self.bank = line.bank self.branch = line.branch self.currency = line.currency self.account = line.account self.from = line.date self.from_balance = line.amount self.operations = [] end |
Instance Method Details
#iban ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/cfonb/statement.rb', line 51 def iban # https://fr.wikipedia.org/wiki/International_Bank_Account_Number normalized_rib = "#{rib}FR00".upcase.gsub(/[A-Z]/) { _1.ord - 55 } key = 98 - (normalized_rib.to_i % 97) "FR#{key.to_s.rjust(2, '0')}#{rib}" end |
#merge_new_balance(line) ⇒ Object
26 27 28 29 30 |
# File 'lib/cfonb/statement.rb', line 26 def merge_new_balance(line) self.end_raw = line.body self.to = line.date self.to_balance = line.amount end |
#raw ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/cfonb/statement.rb', line 32 def raw [ begin_raw, operations.map(&:raw), end_raw, ].join("\n") end |
#rib ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/cfonb/statement.rb', line 40 def rib # https://fr.wikipedia.org/wiki/Clé_RIB key = 97 - (( (bank.to_i * 89) + (branch.to_i * 15) + (account.upcase.tr('A-IJ-RS-Z', '1-91-92-9').to_i * 3) ) % 97) "#{bank}#{branch}#{account}#{key.to_s.rjust(2, '0')}" end |