simple_po_parser 1.1.3 → 1.1.4

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
- SHA1:
3
- metadata.gz: 145b9c1db6de2e03d5eab7a4b04297cb418af047
4
- data.tar.gz: f6cbc4211bc7bb482794c7d620585f8cab1dddba
2
+ SHA256:
3
+ metadata.gz: d513adc568982ba47ab5a03c16a40584c04413d6c4532e4c7c1a971ac0eb50e9
4
+ data.tar.gz: e43f80a14fd83c54eae891510785bf888741438e6b6f074e0d4ab4762f63f6e6
5
5
  SHA512:
6
- metadata.gz: 60479f02418e32487fa9151b8c4a44cc38e3a701174d4201d4335668e4fb08674810ad6a759e2e3aed0979e457a17ed430ea90ed12ef3386e34069539e51407f
7
- data.tar.gz: 16984994b33283f09fe363d204f7830351ccd11fe9293ab32c380c534970d7c76d4d36bc69a3fe917c788c3268aaeeef5408b7a348e0a047cfd43a3c5525ece2
6
+ metadata.gz: 6a292ae5fcdf7479e17e684171c1b518e6a19f3ffdffc361a5f726155c7e4a98dab374ee077a09f438d230ec85923b675916a00994f08b4c82e5e80c4a939bfc
7
+ data.tar.gz: 421252c15dae92b999bf77f4cb5308838e1b9c81bffe70e6131c39c995a51ce13085912400cd60a0aa581fa76ab0cfa23286f0c6893b41454cd1c63a1ac0fc5e
data/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ spec/simple_po_parser/fixtures/crlf_encoded.po binary
data/Rakefile CHANGED
@@ -20,11 +20,11 @@ namespace :parser do
20
20
  require 'benchmark'
21
21
  require 'simple_po_parser'
22
22
 
23
- desc "Benchmark of 10 full PoParser runs of test/benchmark.po"
23
+ desc "Benchmark of 100 full PoParser runs of test/benchmark.po"
24
24
  task "benchmark" do
25
25
  pofile = File.expand_path("test/benchmark.po", __dir__)
26
26
  Benchmark.bmbm do |x|
27
- x.report("Parser:") {10.times { SimplePoParser.parse(pofile) }}
27
+ x.report("Parser:") {100.times { SimplePoParser.parse(pofile) }}
28
28
  end
29
29
  end
30
30
 
@@ -8,7 +8,13 @@ module SimplePoParser
8
8
  end
9
9
 
10
10
  def parse_file(path)
11
- File.open(path, 'r').each_line("\n\n") do |block|
11
+ file = File.open(path, "r")
12
+ if(file.gets =~ /\r$/)
13
+ # detected windows line ending
14
+ file.close
15
+ file = File.open(path, "rt")
16
+ end
17
+ file.each_line("\n\n") do |block|
12
18
  block.strip! # dont parse empty blocks
13
19
  @messages << parse_block(block) if block != ''
14
20
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module SimplePoParser
4
- VERSION = "1.1.3"
4
+ VERSION = "1.1.4"
5
5
  end
@@ -0,0 +1,51 @@
1
+ # PO Header entry
2
+ #
3
+ #, fuzzy
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: simple_po_parser 1\n"
7
+ "Report-Msgid-Bugs-To: me\n"
8
+ "POT-Creation-Date: 2012-05-04 12:56+0000\n"
9
+ "PO-Revision-Date: 2014-05-15 22:24+0330\n"
10
+ "Last-Translator: Dennis-Florian Herr <dennis.herr@experteer.com>\n"
11
+ "Language-Team: English\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Plural-Forms: nplurals=1; plural=0;\n"
16
+
17
+ # translator-comment
18
+ #. extract
19
+ #: reference1
20
+ msgctxt "Context"
21
+ msgid "msgid"
22
+ msgstr "translated"
23
+
24
+ # translator-comment
25
+ #
26
+ #. extract
27
+ #: reference1
28
+ #: reference2
29
+ #, flag
30
+ #| msgctxt "previous context"
31
+ #| msgid ""
32
+ #| "multiline\n"
33
+ #|"previous messageid"
34
+ #| msgid_plural "previous msgid_plural"
35
+ msgctxt "Context"
36
+ msgid "msgid"
37
+ msgid_plural ""
38
+ "multiline msgid_plural\n"
39
+ ""
40
+ msgstr[0] "msgstr 0"
41
+ msgstr[1] ""
42
+ "msgstr 1 multiline 1\n"
43
+ "msgstr 1 line 2\n"
44
+ msgstr[2] "msgstr 2"
45
+
46
+ # translator-comment
47
+ #. extract
48
+ #: reference1
49
+ #~ msgctxt "Context"
50
+ #~ msgid "msgid"
51
+ #~ msgstr "translated"
@@ -2,12 +2,16 @@ require "spec_helper"
2
2
 
3
3
  describe SimplePoParser do
4
4
  let(:po_file) { Pathname.new('spec/simple_po_parser/fixtures/complete_file.po').realpath }
5
+ let(:crlf_file) { Pathname.new('spec/simple_po_parser/fixtures/crlf_encoded.po').realpath }
5
6
  let(:non_ascii_file) { Pathname.new('spec/simple_po_parser/fixtures/non_ascii_file.po').realpath }
6
7
  let(:po_complex_message) { File.read(File.expand_path("fixtures/complex_entry.po", __dir__))}
7
8
 
8
9
  it "parses a po file" do
9
10
  expect(SimplePoParser.parse(po_file)).to be_a_kind_of Array
10
11
  end
12
+ it "parses crlf encoded files" do
13
+ expect(SimplePoParser.parse(crlf_file)).to be_a_kind_of Array
14
+ end
11
15
 
12
16
  it "parses a non ascii po file" do
13
17
  expect(SimplePoParser.parse(non_ascii_file)).to be_a_kind_of Array
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_po_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis-Florian Herr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-15 00:00:00.000000000 Z
11
+ date: 2018-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -46,6 +46,7 @@ executables: []
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - ".gitattributes"
49
50
  - ".gitignore"
50
51
  - ".rspec"
51
52
  - ".travis.yml"
@@ -62,6 +63,7 @@ files:
62
63
  - simple_po_parser.gemspec
63
64
  - spec/simple_po_parser/fixtures/complete_file.po
64
65
  - spec/simple_po_parser/fixtures/complex_entry.po
66
+ - spec/simple_po_parser/fixtures/crlf_encoded.po
65
67
  - spec/simple_po_parser/fixtures/header.po
66
68
  - spec/simple_po_parser/fixtures/non_ascii_file.po
67
69
  - spec/simple_po_parser/fixtures/simple_entry.po
@@ -90,13 +92,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
92
  version: '0'
91
93
  requirements: []
92
94
  rubyforge_project:
93
- rubygems_version: 2.6.11
95
+ rubygems_version: 2.7.6
94
96
  signing_key:
95
97
  specification_version: 4
96
98
  summary: A simple PO file to ruby hash parser
97
99
  test_files:
98
100
  - spec/simple_po_parser/fixtures/complete_file.po
99
101
  - spec/simple_po_parser/fixtures/complex_entry.po
102
+ - spec/simple_po_parser/fixtures/crlf_encoded.po
100
103
  - spec/simple_po_parser/fixtures/header.po
101
104
  - spec/simple_po_parser/fixtures/non_ascii_file.po
102
105
  - spec/simple_po_parser/fixtures/simple_entry.po