xliffle 0.0.6 → 0.3.0

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: d3397cd5843dd6cc40a1c3e6a9c53ea005663bcf
4
- data.tar.gz: 5b3e7b6168395676b01061c9e9029137af4ac6a4
2
+ SHA256:
3
+ metadata.gz: 59cdfffc8f2730a8c7fa8afaad4f85958c79d8044af2b37a10fc0454db30dcde
4
+ data.tar.gz: c5992e29172911b571607e83f1562fa871e2260222b82767902e69070e8f1961
5
5
  SHA512:
6
- metadata.gz: 9c0333d741b07d1dec42b57ac2ffc5f7226a441c728fc67139d5b6769e5a4cfce41f7214edf94c28a0d98bc22328d0b589f1fccc0928ba698d82a931685115d5
7
- data.tar.gz: 13b2892268a84b177338c130c46a6e822f362234c08cac0647c5fdc50498e5b84a8be7d2d1b91e1cd48c9b93a0f569ca9b0598758bbf24cdb6c2b9d12a248a1f
6
+ metadata.gz: e31c2c3703798dbe5671b341f9f56b181e64001b901fa965e1238a6226d23cf01bcb7717cfa444fc07254cdc089ae144a8a1bba58070b89648ffd56a84faabda
7
+ data.tar.gz: 69d24530c5dd4bed93fc9ea0a1e71de7aed2b85ca7cc9e9c7bb6a42e9786153acb877915593c3c1658b4ad7958e41efd1191f07b2a17733ba608a1511a6a6a60
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require 'bundler/setup'
3
5
  rescue LoadError
@@ -14,9 +16,6 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
16
  rdoc.rdoc_files.include('lib/**/*.rb')
15
17
  end
16
18
 
17
-
18
-
19
-
20
19
  Bundler::GemHelper.install_tasks
21
20
 
22
21
  require 'rake/testtask'
@@ -28,5 +27,4 @@ Rake::TestTask.new(:test) do |t|
28
27
  t.verbose = false
29
28
  end
30
29
 
31
-
32
30
  task default: :test
data/lib/xliffle.rb CHANGED
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'xliffle/creator'
2
4
  require 'xliffle/file'
3
5
  require 'xliffle/string'
6
+ require 'xliffle/note'
4
7
 
5
8
  module Xliffle
6
9
  def self.new
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'builder'
2
4
  require 'tempfile'
3
5
 
@@ -10,7 +12,7 @@ module Xliffle
10
12
  end
11
13
 
12
14
  def file(original, source_locale, target_locale)
13
- file = Xliffle::File.new(file_id, original, source_locale, target_locale)
15
+ file = Xliffle::File.new(original, source_locale, target_locale)
14
16
  @files << file
15
17
  file
16
18
  end
@@ -25,7 +27,7 @@ module Xliffle
25
27
 
26
28
  def to_file
27
29
  handle = Tempfile.new('foo.xlf')
28
- handle.write self.to_xliff
30
+ handle.write to_xliff
29
31
  handle.close
30
32
  handle
31
33
  end
@@ -37,9 +39,9 @@ module Xliffle
37
39
  end
38
40
 
39
41
  def xml(&block)
40
- xml = Builder::XmlMarkup.new( :indent => 2 )
41
- xml.instruct! :xml, :encoding => "UTF-8"
42
- xml.xliff({version: '1.2', xmlns: 'urn:oasis:names:tc:xliff:document:1.2'}, &block)
42
+ xml = Builder::XmlMarkup.new(indent: 2)
43
+ xml.instruct! :xml, encoding: 'UTF-8'
44
+ xml.xliff({ version: '1.2', xmlns: 'urn:oasis:names:tc:xliff:document:1.2' }, &block)
43
45
  end
44
46
  end
45
47
  end
data/lib/xliffle/file.rb CHANGED
@@ -1,35 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Xliffle
2
4
  class File
3
5
  attr_reader :original, :strings, :source_locale, :target_locale
4
6
 
5
- def initialize(id, original, source_locale, target_locale)
6
- @id = id
7
+ def initialize(original, source_locale, target_locale)
7
8
  @strings = []
8
9
  @original = original
9
10
  @source_locale = source_locale
10
11
  @target_locale = target_locale
11
12
  end
12
13
 
13
- def string(name, source, target)
14
- string = Xliffle::String.new(string_id, name, source, target)
14
+ def string(id, source, target, options = {})
15
+ string = Xliffle::String.new(id, source, target, options)
15
16
  @strings << string
16
17
  string
17
18
  end
18
19
 
19
20
  def to_xliff(xliff)
20
- xliff.file(original: @original, datatype: 'plaintext', 'source-language' => @source_locale, 'target-language' => @target_locale,) do |f|
21
- f.body do |b|
22
- self.strings.each do |string|
23
- string.to_xliff(b)
21
+ xliff.file(original: @original, datatype: 'plaintext', 'source-language' => @source_locale,
22
+ 'target-language' => @target_locale) do |file|
23
+ file.body do |body|
24
+ strings.each do |string|
25
+ string.to_xliff(body)
24
26
  end
25
27
  end
26
28
  end
27
29
  end
28
-
29
- private
30
-
31
- def string_id
32
- "#{ @id }_#{ @strings.length.succ }"
33
- end
34
30
  end
35
31
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Xliffle
4
+ class Note
5
+ attr_reader :note, :priority
6
+
7
+ def initialize(note, options = {})
8
+ @note = note
9
+ @priority = options[:priority] || 2
10
+ end
11
+
12
+ def to_xliff(xliff)
13
+ xliff.tag!('note', { priority: @priority }, @note)
14
+ end
15
+ end
16
+ end
@@ -1,18 +1,57 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Xliffle
2
4
  class String
3
- attr_reader :name, :source, :target
5
+ attr_reader :id, :source, :target, :notes
4
6
 
5
- def initialize(id, name, source, target)
7
+ def initialize(id, source_string, target_string, options = {})
6
8
  @id = id
7
- @name = name
8
- @source = source
9
- @target = target
9
+ @source_string = source_string
10
+ @target_string = target_string
11
+ @options = options
12
+ @notes = []
13
+ end
14
+
15
+ def note(note, priority = 2)
16
+ note = Xliffle::Note.new(note, priority: priority)
17
+ @notes << note
18
+ note
10
19
  end
11
20
 
12
21
  def to_xliff(xliff)
13
- xliff.tag!('trans-unit', { id: @id, resname: @name }) do |t|
14
- t.source(@source)
15
- t.target(@target)
22
+ xliff.tag!('trans-unit', attributes) do |tag|
23
+ add_segments(tag)
24
+
25
+ @notes.each do |note|
26
+ note.to_xliff(tag)
27
+ end
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def attributes
34
+ attributes = { id: @id }
35
+ attributes[:resname] = @options[:resource_name] if @options[:resource_name]
36
+
37
+ attributes
38
+ end
39
+
40
+ def add_segments(tag)
41
+ tag.source do |xml|
42
+ segment(xml, @source_string)
43
+ end
44
+
45
+ tag.target do |xml|
46
+ segment(xml, @target_string)
47
+ end
48
+ end
49
+
50
+ def segment(tag, value)
51
+ if @options[:use_cdata]
52
+ tag.cdata!(value)
53
+ else
54
+ tag.text!(value)
16
55
  end
17
56
  end
18
57
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Xliffle
2
- VERSION = "0.0.6"
4
+ VERSION = '0.3.0'
3
5
  end
data/test/test_helper.rb CHANGED
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
4
+ ENV['RAILS_ENV'] = 'test'
3
5
 
4
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
- require "rails/test_help"
6
+ require File.expand_path('dummy/config/environment.rb', __dir__)
7
+ require 'rails/test_help'
6
8
 
7
9
  Rails.backtrace_cleaner.remove_silencers!
8
10
 
9
11
  # Load support files
10
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }
11
13
 
12
14
  # Load fixtures from the engine
13
15
  if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
- ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
16
+ ActiveSupport::TestCase.fixture_path = File.expand_path('fixtures', __dir__)
15
17
  end
data/test/xliffle_test.rb CHANGED
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class XliffleTest < ActiveSupport::TestCase
4
- test "truth" do
6
+ test 'truth' do
5
7
  assert_kind_of Module, Xliffle
6
8
  end
7
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xliffle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Rohde
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-18 00:00:00.000000000 Z
11
+ date: 2021-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -25,33 +25,75 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: oga
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3'
33
+ version: '3.3'
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: '3'
40
+ version: '3.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.9'
47
+ version: '0.14'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.14'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.10'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '0.9'
68
+ version: '3.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.15'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.15'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.3'
55
97
  description: A gem to build XLIFF files from translated strings.
56
98
  email:
57
99
  - info@rohdenetz.de
@@ -64,6 +106,7 @@ files:
64
106
  - lib/xliffle.rb
65
107
  - lib/xliffle/creator.rb
66
108
  - lib/xliffle/file.rb
109
+ - lib/xliffle/note.rb
67
110
  - lib/xliffle/string.rb
68
111
  - lib/xliffle/version.rb
69
112
  - test/test_helper.rb
@@ -78,20 +121,19 @@ require_paths:
78
121
  - lib
79
122
  required_ruby_version: !ruby/object:Gem::Requirement
80
123
  requirements:
81
- - - ">="
124
+ - - '='
82
125
  - !ruby/object:Gem::Version
83
- version: '0'
126
+ version: 2.7.3
84
127
  required_rubygems_version: !ruby/object:Gem::Requirement
85
128
  requirements:
86
129
  - - ">="
87
130
  - !ruby/object:Gem::Version
88
131
  version: '0'
89
132
  requirements: []
90
- rubyforge_project:
91
- rubygems_version: 2.2.2
133
+ rubygems_version: 3.1.6
92
134
  signing_key:
93
135
  specification_version: 4
94
136
  summary: Gem to create XLIFF files
95
137
  test_files:
96
- - test/test_helper.rb
97
138
  - test/xliffle_test.rb
139
+ - test/test_helper.rb