Class: SepaFileParser::Entry
- Inherits:
-
Object
- Object
- SepaFileParser::Entry
- Defined in:
- lib/sepa_file_parser/general/entry.rb
Instance Attribute Summary collapse
-
#xml_data ⇒ Object
readonly
Returns the value of attribute xml_data.
Instance Method Summary collapse
- #additional_information ⇒ String (also: #description)
- #amount ⇒ Object
- #amount_in_cents ⇒ Object
- #bank_reference ⇒ String
- #batch_detail ⇒ SepaFileParser::BatchDetail?
- #booked? ⇒ Boolean
- #booking_date ⇒ Date
- #booking_datetime ⇒ DateTime
- #charges ⇒ SepaFileParser::Charges
- #credit? ⇒ Boolean
- #currency ⇒ String
- #debit ⇒ Boolean
- #debit? ⇒ Boolean
-
#initialize(xml_data) ⇒ Entry
constructor
A new instance of Entry.
- #reference ⇒ String
- #reversal? ⇒ Boolean
-
#sign ⇒ Integer
Either 1 or -1.
- #transactions ⇒ Array<SepaFileParser::Transaction>
- #value_date ⇒ Date
- #value_datetime ⇒ DateTime
Constructor Details
#initialize(xml_data) ⇒ Entry
Returns a new instance of Entry.
8 9 10 11 |
# File 'lib/sepa_file_parser/general/entry.rb', line 8 def initialize(xml_data) @xml_data = xml_data @amount = xml_data.xpath('Amt/text()').text end |
Instance Attribute Details
#xml_data ⇒ Object (readonly)
Returns the value of attribute xml_data.
6 7 8 |
# File 'lib/sepa_file_parser/general/entry.rb', line 6 def xml_data @xml_data end |
Instance Method Details
#additional_information ⇒ String Also known as: description
92 93 94 |
# File 'lib/sepa_file_parser/general/entry.rb', line 92 def additional_information @additional_information ||= xml_data.xpath('AddtlNtryInf/text()').text end |
#amount ⇒ Object
13 14 15 |
# File 'lib/sepa_file_parser/general/entry.rb', line 13 def amount SepaFileParser::Misc.to_amount(@amount) end |
#amount_in_cents ⇒ Object
17 18 19 |
# File 'lib/sepa_file_parser/general/entry.rb', line 17 def amount_in_cents SepaFileParser::Misc.to_amount_in_cents(@amount) end |
#bank_reference ⇒ String
52 53 54 |
# File 'lib/sepa_file_parser/general/entry.rb', line 52 def bank_reference # May be missing @bank_reference ||= xml_data.xpath('AcctSvcrRef/text()').text end |
#batch_detail ⇒ SepaFileParser::BatchDetail?
102 103 104 |
# File 'lib/sepa_file_parser/general/entry.rb', line 102 def batch_detail @batch_detail ||= xml_data.xpath('NtryDtls/Btch').empty? ? nil : SepaFileParser::BatchDetail.new(@xml_data.xpath('NtryDtls/Btch')) end |
#booked? ⇒ Boolean
87 88 89 |
# File 'lib/sepa_file_parser/general/entry.rb', line 87 def booked? @booked ||= xml_data.xpath('Sts/text()').text.upcase == 'BOOK' end |
#booking_date ⇒ Date
37 38 39 |
# File 'lib/sepa_file_parser/general/entry.rb', line 37 def booking_date @booking_date ||= ((date = xml_data.xpath('BookgDt/Dt/text()').text).empty? ? nil : Date.parse(date)) end |
#booking_datetime ⇒ DateTime
47 48 49 |
# File 'lib/sepa_file_parser/general/entry.rb', line 47 def booking_datetime @booking_datetime ||= ((datetime = xml_data.xpath('BookgDt/DtTm/text()').text).empty? ? nil : DateTime.parse(datetime)) end |
#charges ⇒ SepaFileParser::Charges
98 99 100 |
# File 'lib/sepa_file_parser/general/entry.rb', line 98 def charges @charges ||= SepaFileParser::Charges.new(xml_data.xpath('Chrgs')) end |
#credit? ⇒ Boolean
67 68 69 |
# File 'lib/sepa_file_parser/general/entry.rb', line 67 def credit? !debit end |
#currency ⇒ String
22 23 24 |
# File 'lib/sepa_file_parser/general/entry.rb', line 22 def currency @currency ||= xml_data.xpath('Amt/@Ccy').text end |
#debit ⇒ Boolean
27 28 29 |
# File 'lib/sepa_file_parser/general/entry.rb', line 27 def debit @debit ||= xml_data.xpath('CdtDbtInd/text()').text.upcase == 'DBIT' end |
#debit? ⇒ Boolean
72 73 74 |
# File 'lib/sepa_file_parser/general/entry.rb', line 72 def debit? debit end |
#reference ⇒ String
57 58 59 |
# File 'lib/sepa_file_parser/general/entry.rb', line 57 def reference # May be missing @reference ||= xml_data.xpath('NtryRef/text()').text end |
#reversal? ⇒ Boolean
82 83 84 |
# File 'lib/sepa_file_parser/general/entry.rb', line 82 def reversal? @reversal ||= xml_data.xpath('RvslInd/text()').text.downcase == 'true' end |
#sign ⇒ Integer
Returns either 1 or -1.
77 78 79 |
# File 'lib/sepa_file_parser/general/entry.rb', line 77 def sign credit? ? 1 : -1 end |
#transactions ⇒ Array<SepaFileParser::Transaction>
62 63 64 |
# File 'lib/sepa_file_parser/general/entry.rb', line 62 def transactions @transactions ||= parse_transactions end |
#value_date ⇒ Date
32 33 34 |
# File 'lib/sepa_file_parser/general/entry.rb', line 32 def value_date @value_date ||= ((date = xml_data.xpath('ValDt/Dt/text()').text).empty? ? nil : Date.parse(date)) end |
#value_datetime ⇒ DateTime
42 43 44 |
# File 'lib/sepa_file_parser/general/entry.rb', line 42 def value_datetime @value_datetime ||= ((datetime = xml_data.xpath('ValDt/DtTm/text()').text).empty? ? nil : DateTime.parse(datetime)) end |