cremul-parser 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/cremul/cremul_line.rb +1 -0
- data/lib/cremul/cremul_message.rb +1 -0
- data/lib/cremul/version.rb +1 -1
- data/lib/cremul_parser.rb +45 -0
- data/test/unit/parser_test.rb +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9635207a99c43f4e3c4fcdb083e58f6656092ab
|
4
|
+
data.tar.gz: 2a751b2190f7a0fd1e1a7cf6270839a99db7aed1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfa534be49c25ec615fd728e0ec17b88b23b3f81eb3f46fdbdb2fbea1d373f75b9e2c0dcd806605bd994165940a2aabd268bfe30580c94889d97d8c480201384
|
7
|
+
data.tar.gz: d9de0a401c1aab4d0cf09df276a16a8e2ba3c75697c8555b6bc90dba0e316f0316266f0814033c9659c2c366551a793329fb4ae6029ce01e1605c1c48b429a60
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.9.2
|
4
|
+
|
5
|
+
Added logging with default settings that may be overridden. In a Rails environment it will default use
|
6
|
+
the Rails logger.
|
7
|
+
|
8
|
+
## 0.9.1
|
9
|
+
|
10
|
+
Pushed a new version because I got an error message when pushing version 0.9.0...
|
11
|
+
|
3
12
|
## 0.9.0
|
4
13
|
|
5
14
|
Added index numbers to CremulMessage, CremulLine and CremulPaymentTx. The hash of the file +
|
data/lib/cremul/cremul_line.rb
CHANGED
@@ -26,6 +26,7 @@ class CremulLine
|
|
26
26
|
tx_index = next_tx_sequence_segment_index(segments, line_segment_pos)
|
27
27
|
|
28
28
|
n.times do |i|
|
29
|
+
CremulParser.logger.info "parsing tx #{i+1}"
|
29
30
|
@transactions << CremulPaymentTx.new(i+1, segments, tx_index)
|
30
31
|
tx_index = next_tx_sequence_segment_index(segments, tx_index+1)
|
31
32
|
end
|
@@ -17,6 +17,7 @@ class CremulMessage
|
|
17
17
|
# instantiate the line items
|
18
18
|
line_segment_pos = next_line_segment_index(segments, 0)
|
19
19
|
@number_of_lines.times do |n|
|
20
|
+
CremulParser.logger.info "parsing line #{n+1}"
|
20
21
|
@lines << CremulLine.new(n+1, segments, line_segment_pos)
|
21
22
|
line_segment_pos = next_line_segment_index(segments, line_segment_pos+1)
|
22
23
|
end
|
data/lib/cremul/version.rb
CHANGED
data/lib/cremul_parser.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
+
require 'logger'
|
3
4
|
require_relative 'cremul/parser_helper'
|
4
5
|
require_relative 'cremul/cremul_message'
|
5
6
|
|
@@ -14,6 +15,47 @@ require_relative 'cremul/cremul_message'
|
|
14
15
|
class CremulParser
|
15
16
|
include Cremul::ParserHelper
|
16
17
|
|
18
|
+
# ----------- class attributes and methods -----------
|
19
|
+
|
20
|
+
@logger = if defined?(Rails)
|
21
|
+
Rails.logger
|
22
|
+
elsif defined?(RAILS_DEFAULT_LOGGER)
|
23
|
+
RAILS_DEFAULT_LOGGER
|
24
|
+
else
|
25
|
+
Logger.new(STDOUT)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.logger
|
29
|
+
@logger
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.logger=(logger)
|
33
|
+
@logger = logger
|
34
|
+
end
|
35
|
+
|
36
|
+
formatter = Proc.new{|severity, time, progname, msg|
|
37
|
+
formatted_severity = sprintf("%-5s",severity.to_s)
|
38
|
+
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S")
|
39
|
+
"[#{formatted_severity} #{formatted_time} #{$$}] CremulParser: file=#{@filename}, #{msg.to_s.strip}\n"
|
40
|
+
}
|
41
|
+
@logger.formatter = formatter
|
42
|
+
|
43
|
+
def self.formatter=(formatter)
|
44
|
+
@logger.formatter = formatter
|
45
|
+
end
|
46
|
+
|
47
|
+
@filename = nil
|
48
|
+
|
49
|
+
def self.filename
|
50
|
+
@filename
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.filename=(filename)
|
54
|
+
@filename = filename
|
55
|
+
end
|
56
|
+
|
57
|
+
# ----------- instance attributes and methods -----------
|
58
|
+
|
17
59
|
attr_reader :segments, :messages
|
18
60
|
|
19
61
|
def initialize
|
@@ -22,6 +64,8 @@ class CremulParser
|
|
22
64
|
|
23
65
|
# noinspection RubyResolve
|
24
66
|
def parse(file, file_encoding='utf-8')
|
67
|
+
self.class.filename = File.basename(file.path)
|
68
|
+
|
25
69
|
file_as_a_string = ''
|
26
70
|
file.each do |line|
|
27
71
|
unless file_encoding == 'utf-8'
|
@@ -41,6 +85,7 @@ class CremulParser
|
|
41
85
|
raise 'No CREMUL message found in file'
|
42
86
|
end
|
43
87
|
m.each do |n, start_index|
|
88
|
+
CremulParser.logger.info "parsing message #{n}"
|
44
89
|
if n < m.size
|
45
90
|
@messages << CremulMessage.new(n, @segments[start_index, m[n+1] - start_index])
|
46
91
|
else
|
data/test/unit/parser_test.rb
CHANGED
@@ -8,6 +8,10 @@ describe CremulParser do
|
|
8
8
|
@parser = CremulParser.new
|
9
9
|
end
|
10
10
|
|
11
|
+
it 'should initialize a logger' do
|
12
|
+
CremulParser.logger.must_be_instance_of Logger
|
13
|
+
end
|
14
|
+
|
11
15
|
it 'should parse a valid cremul file with 1 line item' do
|
12
16
|
@parser.parse(File.open('files/CREMUL0001-utf-8.txt'))
|
13
17
|
@parser.segments.must_be_instance_of Array
|