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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8b899dbadb7e1c564cd1156b647acf50fb818f4
4
- data.tar.gz: c9f86c8f677051c98481a91b1a751cb3193d654e
3
+ metadata.gz: e9635207a99c43f4e3c4fcdb083e58f6656092ab
4
+ data.tar.gz: 2a751b2190f7a0fd1e1a7cf6270839a99db7aed1
5
5
  SHA512:
6
- metadata.gz: 4adb22742847f7ef5f75588f51a837e0b3606a089f21a93907626b2f930169f0cbe37b726d8fc101802184bc8c2ae9a6ae5cde2d51317d06ed93bad36e7a1abe
7
- data.tar.gz: e3633e40dd71dc802aeb77af7669e24f84d8447bec993835c2d2d5c31e364e13d4ad8901de329b292249c593706ae5937c652bcbe77e2daa26ca774292b3ca32
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 +
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Cremul
2
- VERSION = '0.9.1'
2
+ VERSION = '0.9.2'
3
3
  end
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
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cremul-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Per Spilling