PoParser 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e320991c1d0d99631e3e9f69479d8b4a4e32e75
4
- data.tar.gz: a22450eeb90828fa9396ab9e3ae4a066286282ac
3
+ metadata.gz: 4001750c5298956f310f421c8f9cfe8d8c64283c
4
+ data.tar.gz: bff6cd76882df6d406cc2f993a010a48b41320b9
5
5
  SHA512:
6
- metadata.gz: b7244529dfffea1b170cc164581de87a9098cf3a0f4ca981de3c3a0a2a4a5fba222a8b32cd766cfee7ead2a750d6d19740718a8829a9590bde737b6b4b2d74f2
7
- data.tar.gz: 5ab25bb5cfbc95cfe0bb0a131bdebae1b71d16eabf26c4b0adc378611244ed85ae4020ef04d991120b3a7c5c1af8c1606fd28240d0c4144dfcd41b9ffbc5b189
6
+ metadata.gz: a67f9b02929802776b34717d0f4d3f3144bf500a9df17a4f9811f43446f15b64f964ccb0736486e44c73bc22760a3687a98fe0414c92e70843ef5247b7b8821e
7
+ data.tar.gz: 2ffcdb67d60a39d43d49f55222e1dbae130a852522105a1452adebe57285332c68741ac60aefa8c5fbcedeed61a34cc66c183b7bace7588f62993296a7182db4
data/CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
1
 
2
+ 2.0.1 / 2016-12-29
3
+ ==================
4
+
5
+ * header handles flags, especially the fuzzy flag (#13)
6
+ * Update README.md
7
+
2
8
  2.0.0 / 2016-12-22
3
9
  ==================
4
10
 
data/README.md CHANGED
@@ -152,7 +152,7 @@ It's possible to get Hash and String representation of the `Entry`:
152
152
 
153
153
  ```ruby
154
154
  entry.to_h
155
- entry.to_s(true)
155
+ entry.to_s
156
156
  ```
157
157
 
158
158
  ### Searching
@@ -1,6 +1,6 @@
1
1
  module PoParser
2
2
  class Header
3
- attr_reader :entry, :original_configs
3
+ attr_reader :entry, :original_configs, :flag
4
4
  attr_accessor :comments, :pot_creation_date, :po_revision_date, :project_id,
5
5
  :report_to, :last_translator, :team, :language, :charset,
6
6
  :encoding, :plural_forms
@@ -9,6 +9,7 @@ module PoParser
9
9
  @entry = entry
10
10
  @comments = entry.translator_comment.value
11
11
  @original_configs = convert_msgstr_to_hash(entry.msgstr)
12
+ @flag = entry.flag
12
13
 
13
14
  HEADER_LABELS.each do |k, v|
14
15
  instance_variable_set "@#{k.to_s}".to_sym, @original_configs[v]
@@ -23,15 +24,40 @@ module PoParser
23
24
  @original_configs.merge(hash)
24
25
  end
25
26
 
27
+ # Checks if the entry is fuzzy
28
+ #
29
+ # @return [Boolean]
30
+ def fuzzy?
31
+ @flag.to_s.match('fuzzy') ? true : false
32
+ end
33
+
34
+ # Flag the entry as Fuzzy
35
+ # @return [Header]
36
+ def flag_as_fuzzy
37
+ @flag = 'fuzzy'
38
+ self
39
+ end
40
+
41
+ # Set flag to a custom string
42
+ def flag_as(flag)
43
+ raise ArgumentError if flag.class != String
44
+ @flag = flag
45
+ end
46
+
26
47
  def to_h
27
48
  @entry.to_h
28
49
  end
29
50
 
30
51
  def to_s
31
52
  string = []
32
- @comments.each do |comment|
33
- string << "# #{comment}".strip
53
+ if @comments.is_a?(Array)
54
+ @comments.each do |comment|
55
+ string << "# #{comment}".strip
56
+ end
57
+ else
58
+ string << "# #{@comments}".strip
34
59
  end
60
+ string << "#, #{@flag.to_s}" if @flag
35
61
  string << "msgid \"\"\nmsgstr \"\""
36
62
  configs.each do |k, v|
37
63
  if v.nil? || v.empty?
@@ -1,3 +1,3 @@
1
1
  module PoParser
2
- VERSION = "2.0.0"
2
+ VERSION = "2.0.1"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  # Arash Mousavi <mousavi.arash@gmail.com>, 2014.
2
2
  #
3
+ #, fuzzy
3
4
  msgid ""
4
5
  msgstr ""
5
6
  "Project-Id-Version: damned-lies master\n"
@@ -7,10 +7,6 @@ describe PoParser::Header do
7
7
  msgstr: ["Project-Id-Version: gnome-shell-extensions gnome-3-0\\n", "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-", "shell&keywords=I18N+L10N&component=extensions\\n", "POT-Creation-Date: 2014-08-28 07:40+0000\\n", "PO-Revision-Date: 2014-08-28 19:59+0430\\n", "Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\\n", "Language-Team: Persian <>\\n", "Language: fa_IR\\n", "MIME-Version: 1.0\\n", "Content-Type: text/plain; charset=UTF-8\\n", "Content-Transfer-Encoding: 8bit\\n", "X-Poedit-SourceCharset: utf-8\\n", "X-Generator: Gtranslator 2.91.6\\n", "Plural-Forms: nplurals=1; plural=0;\\n"]}
8
8
  end
9
9
 
10
- let(:comment) do
11
- "Persian translation for gnome-shell-extensions.\nCopyright (C) 2011 Iranian Free Software Users Group (IFSUG.org) translation team.\nThis file is distributed under the same license as the gnome-shell-extensions package.\nArash Mousavi <mousavi.arash@gmail.com>, 2011, 2013, 2014.\n"
12
- end
13
-
14
10
  let(:labels) {
15
11
  [
16
12
  :pot_creation_date, :po_revision_date, :project_id,
@@ -41,4 +37,34 @@ describe PoParser::Header do
41
37
  expect(@header.configs['Language']).to eq('en_US')
42
38
  end
43
39
 
40
+ context 'Comments' do
41
+ it 'should handle single line comments' do
42
+ @header.comments = "This is the header"
43
+ expect(@header.to_s).to start_with("# This is the header\nmsgid")
44
+ end
45
+
46
+ it 'should handle single multiline comments' do
47
+ @header.comments = ["This is a header", "with two lines"]
48
+ expect(@header.to_s).to start_with("# This is a header\n# with two lines\nmsgid")
49
+ end
50
+ end
51
+
52
+ context 'Flags' do
53
+ it 'should check if a entry is fuzzy' do
54
+ expect(@header.fuzzy?).to be_falsy
55
+ @header.flag_as('fuzzy')
56
+ expect(@header.fuzzy?).to be_truthy
57
+ end
58
+
59
+ it 'should flag a entry as fuzzy' do
60
+ expect(@header.flag_as_fuzzy).to be_truthy
61
+ expect(@header.flag).to eq('fuzzy')
62
+ end
63
+
64
+ it 'should be able to set a custome flag' do
65
+ expect(@header.flag_as 'python-format').to be_truthy
66
+ expect(@header.flag).to eq('python-format')
67
+ end
68
+ end
69
+
44
70
  end
@@ -102,6 +102,21 @@ describe PoParser::Po do
102
102
  expect(@po.header.comments).to eq(["Arash Mousavi <mousavi.arash@gmail.com>, 2014.", ""])
103
103
  end
104
104
 
105
+ it 'should parse the flag and be fuzzy' do
106
+ expect(@po.header.flag.to_s).to eq('fuzzy')
107
+ expect(@po.header.fuzzy?).to eq(true)
108
+ end
109
+
110
+ it 'should flag a entry as fuzzy' do
111
+ expect(@po.header.flag_as_fuzzy).to be_truthy
112
+ expect(@po.header.flag).to eq('fuzzy')
113
+ end
114
+
115
+ it 'should be able to set a custome flag' do
116
+ expect(@po.header.flag_as 'python-format').to be_truthy
117
+ expect(@po.header.flag).to eq('python-format')
118
+ end
119
+
105
120
  it 'throws error if there\'re two header string' do
106
121
  path = Pathname.new('spec/poparser/fixtures/header_error.po').realpath
107
122
  expect{
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: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arash Mousavi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-22 00:00:00.000000000 Z
11
+ date: 2016-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet