PoParser 1.0.1 → 1.0.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/.travis.yml +4 -4
- data/CHANGELOG.md +9 -0
- data/Gemfile +2 -2
- data/README.md +4 -3
- data/lib/poparser/parser.rb +1 -1
- data/lib/poparser/po.rb +4 -4
- data/lib/poparser/tokenizer.rb +1 -1
- data/lib/poparser/version.rb +1 -1
- data/poparser.gemspec +2 -2
- data/spec/poparser/fixtures/tokenizer_empty_line.po +8 -0
- data/spec/poparser/po_spec.rb +8 -3
- data/spec/poparser/tokenizer_spec.rb +7 -0
- metadata +13 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b3b3b754a563da373fb40d8e901d4a4124eb0b2
|
4
|
+
data.tar.gz: 7eec9bfd122d8c8b8fcb00978b098a1d06d3c21f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20e9febb7b8c5318e571fd38c21763514ed1ad3d04876991c2f7953af0d25c315e576c3fc62e63b444bcb50c6af4c873217803dcb6ee432f21d0a602c18add67
|
7
|
+
data.tar.gz: a6bf0c4b73d1dfa215981ee77227e95d1786370e9c20996b13c4bd0602383575d9edf19f2ed89c837715e8f8a2ded95c326542c6d702c362492cb37b7a5ef218
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -15,7 +15,7 @@ Add this line to your application's Gemfile:
|
|
15
15
|
|
16
16
|
And then execute:
|
17
17
|
|
18
|
-
$ bundle
|
18
|
+
$ bundle install
|
19
19
|
|
20
20
|
Or install it yourself as:
|
21
21
|
|
@@ -26,6 +26,7 @@ Or install it yourself as:
|
|
26
26
|
Working with the GEM is pretty easy:
|
27
27
|
|
28
28
|
```ruby
|
29
|
+
require 'poparser'
|
29
30
|
path = Pathname.new('example.po')
|
30
31
|
po = PoParser.parse(path)
|
31
32
|
=> <PoParser::Po, Translated: 68.1% Untranslated: 20.4% Fuzzy: 11.5%>
|
@@ -125,12 +126,12 @@ entry.plural?
|
|
125
126
|
#=> false
|
126
127
|
```
|
127
128
|
|
128
|
-
You can get or edit each
|
129
|
+
You can get or edit each property of the `Entry`:
|
129
130
|
|
130
131
|
```ruby
|
131
132
|
entry.msgid.to_s
|
132
133
|
#=> "This is an msgid that needs to get translated"
|
133
|
-
entry.translate
|
134
|
+
entry.translate("This entry is translated") # or `msgstr=` alias
|
134
135
|
entry.msgstr.to_s
|
135
136
|
#=> "This entry is translated"
|
136
137
|
```
|
data/lib/poparser/parser.rb
CHANGED
@@ -33,7 +33,7 @@ module PoParser
|
|
33
33
|
rule(:multiline) { str('"').present? >> msg_text_line.repeat.maybe }
|
34
34
|
rule(:msgid) { spaced('msgid') >> msg_text_line >> multiline.repeat }
|
35
35
|
rule(:msgid_plural) { spaced('msgid_plural') >> msg_text_line >> multiline.repeat }
|
36
|
-
|
36
|
+
|
37
37
|
rule(:msgstr) { spaced('msgstr') >> msg_text_line >> multiline.repeat }
|
38
38
|
rule(:msgstr_plural){ str('msgstr') >> bracketed(match["[0-9]"].as(:plural_id)) >> space? >> msg_text_line >> multiline.repeat }
|
39
39
|
rule(:msgctxt) { spaced('msgctxt') >> msg_text_line >> multiline.repeat }
|
data/lib/poparser/po.rb
CHANGED
@@ -107,13 +107,13 @@ module PoParser
|
|
107
107
|
# @return [Hash] a hash of translated, untranslated and fuzzy percentages
|
108
108
|
def stats
|
109
109
|
untranslated_size = untranslated.size
|
110
|
-
translated_size
|
111
|
-
fuzzy_size
|
110
|
+
translated_size = translated.size
|
111
|
+
fuzzy_size = fuzzy.size
|
112
112
|
|
113
113
|
{
|
114
|
-
translated:
|
114
|
+
translated: percentage(translated_size),
|
115
115
|
untranslated: percentage(untranslated_size),
|
116
|
-
fuzzy:
|
116
|
+
fuzzy: percentage(fuzzy_size)
|
117
117
|
}
|
118
118
|
end
|
119
119
|
|
data/lib/poparser/tokenizer.rb
CHANGED
data/lib/poparser/version.rb
CHANGED
data/poparser.gemspec
CHANGED
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_runtime_dependency "parslet", "~> 1.7"
|
23
23
|
|
24
24
|
# Development deps
|
25
|
-
spec.add_development_dependency "bundler", "
|
26
|
-
spec.add_development_dependency "rake", "
|
25
|
+
spec.add_development_dependency "bundler", ">= 0"
|
26
|
+
spec.add_development_dependency "rake", ">= 0"
|
27
27
|
end
|
data/spec/poparser/po_spec.rb
CHANGED
@@ -40,10 +40,15 @@ describe PoParser::Po do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'shows stats' do
|
43
|
-
entry2, entry3 = entry.dup, entry.dup
|
43
|
+
entry2, entry3, entry4 = entry.dup, entry.dup, entry.dup
|
44
44
|
[entry2, entry3].each { |en| en[:msgstr] = '' }
|
45
|
-
@po << [entry, entry2, entry3]
|
46
|
-
|
45
|
+
@po << [entry, entry2, entry3, entry4]
|
46
|
+
@po.entries.last.flag_as_fuzzy
|
47
|
+
result = @po.stats
|
48
|
+
|
49
|
+
expect(result[:translated]).to eq 25
|
50
|
+
expect(result[:untranslated]).to eq 50
|
51
|
+
expect(result[:fuzzy]).to eq 25
|
47
52
|
end
|
48
53
|
|
49
54
|
it 'shouldn\'t count cached entries' do
|
@@ -4,6 +4,7 @@ require "spec_helper.rb"
|
|
4
4
|
describe PoParser::Tokenizer do
|
5
5
|
let(:token) { PoParser::Tokenizer.new }
|
6
6
|
let(:po_file){ Pathname.new('spec/poparser/fixtures/tokenizer.po').realpath }
|
7
|
+
let(:po_file_empty_line){ Pathname.new('spec/poparser/fixtures/tokenizer_empty_line.po').realpath }
|
7
8
|
let(:result) { [{:refrence=>"templates:105", :msgid=>"Afrikaans", :msgstr=>"آفریقایی"}, {:flag=>"fuzzy", :msgid=>"Afrikaans", :msgstr=>"آفریقایی" }] }
|
8
9
|
|
9
10
|
it 'should be able to extracts entries' do
|
@@ -11,4 +12,10 @@ describe PoParser::Tokenizer do
|
|
11
12
|
token.extract_entries(po_file).to_h
|
12
13
|
).to eq(result)
|
13
14
|
end
|
15
|
+
|
16
|
+
it 'should gracefully handle empty lines at the beginning' do
|
17
|
+
expect(
|
18
|
+
token.extract_entries(po_file_empty_line).to_h
|
19
|
+
).to eq(result)
|
20
|
+
end
|
14
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: PoParser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arash Mousavi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parslet
|
@@ -28,30 +28,30 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
description: A PO file parser, editor and generator. PO files are translation files
|
56
56
|
generated by GNU/Gettext tool.
|
57
57
|
email:
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- spec/poparser/fixtures/plural.po
|
90
90
|
- spec/poparser/fixtures/test.po
|
91
91
|
- spec/poparser/fixtures/tokenizer.po
|
92
|
+
- spec/poparser/fixtures/tokenizer_empty_line.po
|
92
93
|
- spec/poparser/header_spec.rb
|
93
94
|
- spec/poparser/message_spec.rb
|
94
95
|
- spec/poparser/parser_spec.rb
|
@@ -117,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
118
|
version: '0'
|
118
119
|
requirements: []
|
119
120
|
rubyforge_project:
|
120
|
-
rubygems_version: 2.4
|
121
|
+
rubygems_version: 2.6.4
|
121
122
|
signing_key:
|
122
123
|
specification_version: 4
|
123
124
|
summary: A PO file parser, editor and generator.
|
@@ -130,6 +131,7 @@ test_files:
|
|
130
131
|
- spec/poparser/fixtures/plural.po
|
131
132
|
- spec/poparser/fixtures/test.po
|
132
133
|
- spec/poparser/fixtures/tokenizer.po
|
134
|
+
- spec/poparser/fixtures/tokenizer_empty_line.po
|
133
135
|
- spec/poparser/header_spec.rb
|
134
136
|
- spec/poparser/message_spec.rb
|
135
137
|
- spec/poparser/parser_spec.rb
|