PoParser 3.2.6 → 3.2.8

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
  SHA256:
3
- metadata.gz: e956b0d5ba96d2c12794bd0efb3fd5a6708251c6a16b7502c4f3abbf1026e9c4
4
- data.tar.gz: 7ef2572358ed32934a0186afa14d885f2f9bb607992e409e647a881fac98320e
3
+ metadata.gz: 800faf95fab47c838c82c4fa748d344f011480bd5f8c892e3b31fcdd3bb66225
4
+ data.tar.gz: 0456dc24a2987ac109be0ea3b9d9442b19eb2826fd5aa84511f30089329edf9a
5
5
  SHA512:
6
- metadata.gz: 60c8b351dad67ea1d6d526b74fdf978bb4be0bea06b7cec6a6daf487310b0d1385171e0e32cd3d0068db49197d2e8a651f3031fa7d808b970753bcedc55fabae
7
- data.tar.gz: 52923e7c8d10eb5846dc51a65328b45ade04ce42268a73c9922944b7b4313988726c0f48764e9ea992b061c7607a500e98b2d1e1d0e803f47ced7780114a49d9
6
+ metadata.gz: c5bd34cb5a7569cdd93403f0158cb60fd4318e4500070f2493e1a89c476a06f95fb65cbda26cc999528518538901d8e21fb8955fcd3af044aa64236e445dc98c
7
+ data.tar.gz: e92ed629f246f43a2528b0f3a96d7c2262c671b04b0ef67135b7a635a1cf3635e98a3e27e550e9c18b5b2aabe2b20681467d55061bb8cdad38d98d94ad11bd35
data/.editorconfig ADDED
@@ -0,0 +1,20 @@
1
+ root = true
2
+
3
+ [*]
4
+ end_of_line = lf
5
+ indent_size = 2
6
+ indent_style = space
7
+ insert_final_newline = true
8
+ tab_width = 2
9
+ trim_trailing_whitespace = true
10
+ charset = utf-8
11
+ max_line_length = 119
12
+
13
+ [*.gemspec]
14
+ indent_size = 2
15
+
16
+ [*.rb]
17
+ indent_size = 2
18
+
19
+ [*.yml,*.yaml]
20
+ indent_size = 2
@@ -9,33 +9,32 @@ name: Ruby
9
9
 
10
10
  on:
11
11
  push:
12
- branches: [ master ]
12
+ branches: [master]
13
13
  pull_request:
14
- branches: [ master ]
14
+ branches: [master]
15
15
 
16
16
  jobs:
17
17
  test:
18
-
19
18
  runs-on: ubuntu-latest
20
19
  strategy:
21
20
  matrix:
22
- ruby-version: ['2.5', '2.6', '2.7', '3.0']
21
+ ruby-version: ["3.0", "3.1", "3.2", "3.3"]
23
22
 
24
23
  steps:
25
- - uses: actions/checkout@v2
26
- - name: Set up Ruby
27
- # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
- # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
- # uses: ruby/setup-ruby@v1
30
- uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
- with:
32
- ruby-version: ${{ matrix.ruby-version }}
33
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
- - name: Run tests
35
- run: bundle exec rake
24
+ - uses: actions/checkout@v2
25
+ - name: Set up Ruby
26
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
27
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
28
+ # uses: ruby/setup-ruby@v1
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby-version }}
32
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
33
+ - name: Run tests
34
+ run: bundle exec rake
36
35
 
37
- - name: Coveralls
38
- uses: coverallsapp/github-action@master
39
- with:
40
- github-token: ${{ secrets.GITHUB_TOKEN }}
41
- path-to-lcov: "./coverage/lcov.info"
36
+ - name: Coveralls
37
+ uses: coverallsapp/github-action@master
38
+ with:
39
+ github-token: ${{ secrets.GITHUB_TOKEN }}
40
+ path-to-lcov: "./coverage/lcov.info"
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 3.3
3
3
  Exclude:
4
4
  - 'spec/**/*'
5
5
  - 'bin/*'
@@ -18,17 +18,15 @@ Layout/MultilineMethodCallIndentation:
18
18
  Layout/AccessModifierIndentation:
19
19
  EnforcedStyle: outdent
20
20
 
21
- Layout/AlignParameters:
21
+ Metrics/MethodLength:
22
+ Enabled: false
23
+
24
+ Layout/ParameterAlignment:
22
25
  EnforcedStyle: with_fixed_indentation
23
26
 
24
27
  Style/FrozenStringLiteralComment:
25
28
  Enabled: true
26
29
 
27
- Style/PercentLiteralDelimiters:
28
- PreferredDelimiters:
29
- '%i': '()'
30
- '%w': '()'
31
-
32
30
  Style/TrailingCommaInArrayLiteral:
33
31
  Enabled: true
34
32
  EnforcedStyleForMultiline: comma
@@ -41,9 +39,12 @@ Style/TrailingCommaInArguments:
41
39
  Enabled: true
42
40
  EnforcedStyleForMultiline: comma
43
41
 
42
+ Style/OptionalBooleanParameter:
43
+ Enabled: false
44
+
44
45
  Layout/EmptyLines:
45
46
  Enabled: true
46
47
 
47
48
  Metrics/LineLength:
48
- Max: 100
49
+ Max: 120
49
50
  IgnoreCopDirectives: True
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ 3.2.8 / 2024-05-09
2
+ ==================
3
+
4
+ * Add Report-Msgid-Bugs-To header attribute
5
+
6
+ 3.2.6 / 2022-04-24
7
+ ==================
8
+
9
+ * Update simple_po_parser version to 1.1.6 (#29) Courtesy of @dfherr
10
+
11
+ 3.2.5 / 2021-01-11
12
+ ==================
13
+
14
+ * Dependency updates
15
+ * Remove support for Ruby 2.4
16
+
1
17
  3.2.4 / 2019-10-12
2
18
  ==================
3
19
 
data/README.md CHANGED
@@ -233,6 +233,7 @@ You can get and set following variables from `header`:
233
233
  po_revision_date
234
234
  project_id
235
235
  report_to
236
+ report_msgid_bugs_to
236
237
  last_translator
237
238
  team
238
239
  language
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rubygems'
3
5
  require 'rake'
@@ -5,14 +7,14 @@ require 'rspec/core/rake_task'
5
7
 
6
8
  RSpec::Core::RakeTask.new(:spec)
7
9
 
8
- task :default => :spec
10
+ task default: :spec
9
11
 
10
- desc "Generate a random po file. Takes optional rake args for number of entries"
11
- task 'generate_random_pofile', :messages, :obsoletes do |t, args|
12
- args.with_defaults(:messages => "200", :obsoletes => "10")
12
+ desc 'Generate a random po file. Takes optional rake args for number of entries'
13
+ task 'generate_random_pofile', :messages, :obsoletes do |_t, args|
14
+ args.with_defaults(messages: '200', obsoletes: '10')
13
15
  require_relative 'spec/utils/random_pofile_generator'
14
16
  PoParser::RandomPoFileGenerator.generate_file(
15
- File.expand_path("test/benchmark.po", __dir__), args[:messages].to_i, args[:obsoletes].to_i
17
+ File.expand_path('test/benchmark.po', __dir__), args[:messages].to_i, args[:obsoletes].to_i
16
18
  )
17
19
  end
18
20
 
@@ -20,46 +22,45 @@ namespace :debug do
20
22
  require 'benchmark'
21
23
  require_relative 'lib/poparser'
22
24
 
23
- desc "Benchmark of 10 full PoParser runs of test/benchmark.po"
24
- task "benchmark" do
25
- pofile = File.expand_path("test/benchmark.po", __dir__)
25
+ desc 'Benchmark of 10 full PoParser runs of test/benchmark.po'
26
+ task 'benchmark' do
27
+ pofile = File.expand_path('test/benchmark.po', __dir__)
26
28
  Benchmark.bmbm do |x|
27
- x.report("Parser:") {10.times { PoParser.new.parse(pofile) }}
29
+ x.report('Parser:') { 10.times { PoParser.new.parse(pofile) } }
28
30
  end
29
31
  end
30
32
 
31
- desc "Generate 5 random PO files with 100 to 500 messages and benchmark each full PoParser run"
33
+ desc 'Generate 5 random PO files with 100 to 500 messages and benchmark each full PoParser run'
32
34
  task 'five_random_po_full' do
33
35
  include Benchmark
34
36
  require_relative 'spec/utils/random_pofile_generator'
35
- pofile = File.expand_path("test/benchmark.po.tmp", __dir__)
36
- Benchmark.benchmark(CAPTION, 6, FORMAT, "total:") do |x|
37
+ pofile = File.expand_path('test/benchmark.po.tmp', __dir__)
38
+ Benchmark.benchmark(CAPTION, 6, FORMAT, 'total:') do |x|
37
39
  total = nil
38
40
  total_length = 0
39
- for i in 0..5 do
41
+ 6.times do |i|
40
42
  length = (Random.new.rand * 400.0 + 100).to_i
41
43
  total_length += length
42
44
  puts "Benchmarking file of length #{length}"
43
45
  SimplePoParser::RandomPoFileGenerator.generate_file(pofile, length)
44
- t = x.report("try#{i}:") {PoParser.new.parse(pofile)}
46
+ t = x.report("try#{i}:") { PoParser.new.parse(pofile) }
45
47
  File.unlink(pofile)
46
- total = total ? total+t : t
48
+ total = total ? total + t : t
47
49
  end
48
50
  puts "Total message length #{total_length}"
49
51
  [total]
50
52
  end
51
53
  end
52
54
 
53
- desc "Show ruby-prof profiler for spec/fixtures/complex_entry.po"
54
- task "profile_parser" do
55
+ desc 'Show ruby-prof profiler for spec/fixtures/complex_entry.po'
56
+ task 'profile_parser' do
55
57
  require 'ruby-prof'
56
58
  RubyProf.start
57
- po_message = File.read(File.expand_path("spec/simple_po_parser/fixtures/complex_entry.po", __dir__))
59
+ po_message = File.read(File.expand_path('spec/simple_po_parser/fixtures/complex_entry.po', __dir__))
58
60
  PoParser.new.parse(po_message)
59
61
  result = RubyProf.stop
60
62
 
61
63
  printer = RubyProf::FlatPrinter.new(result)
62
- printer.print(STDOUT)
64
+ printer.print($stdout)
63
65
  end
64
-
65
66
  end
@@ -19,22 +19,20 @@ module PoParser
19
19
  if /^previous_/.match?(@type.to_s) # these behave more like messages
20
20
  string = ["#{COMMENTS_LABELS[@type]} \"\"\n"]
21
21
  @value.each do |str|
22
- string << "#| \"#{str}\"\n".gsub(/[\p{Blank}]+$/, '')
22
+ string << "#| \"#{str}\"\n".gsub(/\p{Blank}+$/, '')
23
23
  end
24
24
  else
25
25
  string = []
26
26
  @value.each do |str|
27
- string << "#{COMMENTS_LABELS[@type]} #{str}\n".gsub(/[\p{Blank}]+$/, '')
27
+ string << "#{COMMENTS_LABELS[@type]} #{str}\n".gsub(/\p{Blank}+$/, '')
28
28
  end
29
29
  end
30
- return string.join
30
+ string.join
31
+ elsif /^previous_/.match?(@type.to_s)
32
+ "#{COMMENTS_LABELS[@type]} \"#{@value}\"\n".gsub(/\p{Blank}+$/, '') # these behave more like messages
31
33
  else
32
- if /^previous_/.match?(@type.to_s) # these behave more like messages
33
- "#{COMMENTS_LABELS[@type]} \"#{@value}\"\n".gsub(/[\p{Blank}]+$/, '')
34
- else
35
- # removes the space but not newline at the end
36
- "#{COMMENTS_LABELS[@type]} #{@value}\n".gsub(/[\p{Blank}]+$/, '')
37
- end
34
+ # removes the space but not newline at the end
35
+ "#{COMMENTS_LABELS[@type]} #{@value}\n".gsub(/\p{Blank}+$/, '')
38
36
  end
39
37
  end
40
38
 
@@ -25,7 +25,7 @@ module PoParser
25
25
  pot_creation_date: 'POT-Creation-Date',
26
26
  po_revision_date: 'PO-Revision-Date',
27
27
  project_id: 'Project-Id-Version',
28
- report_to: 'Project-Id-Version',
28
+ report_to: 'Report-Msgid-Bugs-To',
29
29
  last_translator: 'Last-Translator',
30
30
  team: 'Language-Team',
31
31
  language: 'Language',
@@ -5,8 +5,10 @@ module PoParser
5
5
  class Header
6
6
  attr_reader :entry, :original_configs, :flag
7
7
  attr_accessor :comments, :pot_creation_date, :po_revision_date, :project_id,
8
- :report_to, :last_translator, :team, :language, :charset,
9
- :encoding, :plural_forms
8
+ :report_to, :last_translator, :team, :language, :charset,
9
+ :encoding, :plural_forms
10
+
11
+ alias report_msgid_bugs_to report_to
10
12
 
11
13
  def initialize(entry)
12
14
  @entry = entry
@@ -25,7 +25,7 @@ module PoParser
25
25
  @value.each do |str|
26
26
  lines << "\"#{str}\"\n"
27
27
  end
28
- return lines.join
28
+ lines.join
29
29
  else
30
30
  "#{label} \"#{@value}\"\n"
31
31
  end
@@ -42,9 +42,9 @@ module PoParser
42
42
  private
43
43
 
44
44
  def remove_empty_line
45
- if @value.is_a? Array
46
- @value.shift if @value.first == ''
47
- end
45
+ return unless @value.is_a?(Array)
46
+
47
+ @value.shift if @value.first == ''
48
48
  end
49
49
 
50
50
  def label
data/lib/poparser/po.rb CHANGED
@@ -151,10 +151,8 @@ module PoParser
151
151
  File.open(@path, 'w') { |file| file.write(to_s) }
152
152
  end
153
153
 
154
- def each
155
- @entries.each do |entry|
156
- yield entry
157
- end
154
+ def each(&block)
155
+ @entries.each(&block)
158
156
  end
159
157
 
160
158
  def inspect
@@ -185,13 +183,11 @@ module PoParser
185
183
  self
186
184
  end
187
185
 
188
- # rubocop:disable Style/SafeNavigation
189
186
  def add_entry(entry)
190
187
  return add_header_entry(entry) if entry[:msgid] && entry[:msgid].empty?
191
188
 
192
189
  @entries << Entry.new(entry)
193
190
  end
194
- # rubocop:enable Style/SafeNavigation
195
191
 
196
192
  def add_header_entry(entry)
197
193
  raise('Duplicate entry, header was already instantiated') if @header
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PoParser
4
- VERSION = '3.2.6'
4
+ VERSION = '3.2.8'
5
5
  end
@@ -26,6 +26,20 @@ describe PoParser::Header do
26
26
  end
27
27
  end
28
28
 
29
+ it 'returns correct values for labels' do
30
+ expect(@header.project_id).to eq('gnome-shell-extensions gnome-3-0')
31
+ expect(@header.report_to).to eq('http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions')
32
+ expect(@header.report_msgid_bugs_to).to eq('http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions')
33
+ expect(@header.pot_creation_date).to eq('2014-08-28 07:40+0000')
34
+ expect(@header.po_revision_date).to eq('2014-08-28 19:59+0430')
35
+ expect(@header.last_translator).to eq('Arash Mousavi <mousavi.arash@gmail.com>')
36
+ expect(@header.team).to eq('Persian <>')
37
+ expect(@header.language).to eq('fa_IR')
38
+ expect(@header.charset).to eq('text/plain; charset=UTF-8')
39
+ expect(@header.encoding).to eq('8bit')
40
+ expect(@header.plural_forms).to eq('nplurals=1; plural=0;')
41
+ end
42
+
29
43
  it 'should convert configs to hash' do
30
44
  expect(@header.original_configs).to eq(
31
45
  {"Project-Id-Version"=>"gnome-shell-extensions gnome-3-0", "Report-Msgid-Bugs-To"=>"http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions", "POT-Creation-Date"=>"2014-08-28 07:40+0000", "PO-Revision-Date"=>"2014-08-28 19:59+0430", "Last-Translator"=>"Arash Mousavi <mousavi.arash@gmail.com>", "Language-Team"=>"Persian <>", "Language"=>"fa_IR", "MIME-Version"=>"1.0", "Content-Type"=>"text/plain; charset=UTF-8", "Content-Transfer-Encoding"=>"8bit", "X-Poedit-SourceCharset"=>"utf-8", "X-Generator"=>"Gtranslator 2.91.6", "Plural-Forms"=>"nplurals=1; plural=0;"}
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: 3.2.6
4
+ version: 3.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arash Mousavi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-24 00:00:00.000000000 Z
11
+ date: 2024-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple_po_parser
@@ -60,6 +60,7 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
+ - ".editorconfig"
63
64
  - ".github/workflows/ruby.yml"
64
65
  - ".gitignore"
65
66
  - ".rspec"
@@ -119,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
120
  - !ruby/object:Gem::Version
120
121
  version: '0'
121
122
  requirements: []
122
- rubygems_version: 3.3.7
123
+ rubygems_version: 3.5.10
123
124
  signing_key:
124
125
  specification_version: 4
125
126
  summary: A PO file parser, editor and generator.