deepl_diff 1.0.2 → 1.1.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 +4 -4
- data/.github/workflows/ci.yml +37 -0
- data/.github/workflows/release.yml +28 -0
- data/.rubocop.yml +13 -2
- data/.ruby-version +1 -0
- data/deepl_diff.gemspec +19 -18
- data/lib/deepl_diff/chunker.rb +9 -9
- data/lib/deepl_diff/linearizer.rb +1 -1
- data/lib/deepl_diff/request.rb +3 -4
- data/lib/deepl_diff/tokenizer.rb +11 -10
- data/lib/deepl_diff/version.rb +1 -1
- data/lib/deepl_diff.rb +7 -2
- metadata +62 -76
- data/.travis.yml +0 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 19d6f34da084b57edb1a50356fd34be56d93bd2a968aea99deb93f4233fb3620
|
|
4
|
+
data.tar.gz: a7ee76936e0cb0e19ad569b93f671967cec2285d9a656b76a2fbe6e93c9776a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3f966fa796638f71d87b565fe8d7db7de0f0902c05a4f0767566a2fb5a2a034e7f2920c20e562195e4449d99379ffb415209a1946401e1476cc98e7118264c07
|
|
7
|
+
data.tar.gz: fe7d3e2da279d6701c5c9ba92196517d6cdbfb93fd728cbd0370827de92fcc2d857945cf87c160ac16193f4698df1ef7402fbf895a990827cf27b8948e772a5f
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
ruby: ["3.2", "3.3", "3.4", "4.0"]
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- uses: ruby/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
ruby-version: ${{ matrix.ruby }}
|
|
22
|
+
bundler-cache: true
|
|
23
|
+
|
|
24
|
+
- run: bundle exec rspec
|
|
25
|
+
|
|
26
|
+
lint:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v4
|
|
31
|
+
|
|
32
|
+
- uses: ruby/setup-ruby@v1
|
|
33
|
+
with:
|
|
34
|
+
ruby-version: "3.4"
|
|
35
|
+
bundler-cache: true
|
|
36
|
+
|
|
37
|
+
- run: bundle exec rubocop
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
push:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
# Push the version tag when `rake release` creates one.
|
|
14
|
+
contents: write
|
|
15
|
+
# Mint the OIDC token RubyGems trusted publishing authenticates with.
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- uses: ruby/setup-ruby@v1
|
|
22
|
+
with:
|
|
23
|
+
ruby-version: "3.4"
|
|
24
|
+
bundler-cache: true
|
|
25
|
+
|
|
26
|
+
- run: bundle exec rspec
|
|
27
|
+
|
|
28
|
+
- uses: rubygems/release-gem@v1
|
data/.rubocop.yml
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
AllCops:
|
|
2
|
+
TargetRubyVersion: 3.2
|
|
3
|
+
NewCops: enable
|
|
4
|
+
|
|
5
|
+
Style/Documentation:
|
|
2
6
|
Enabled: false
|
|
3
7
|
|
|
4
8
|
Style/StringLiterals:
|
|
@@ -11,5 +15,12 @@ Metrics/BlockLength:
|
|
|
11
15
|
Exclude:
|
|
12
16
|
- spec/**/*
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
Layout/LineLength:
|
|
15
19
|
Max: 120
|
|
20
|
+
|
|
21
|
+
Gemspec/DevelopmentDependencies:
|
|
22
|
+
EnforcedStyle: gemspec
|
|
23
|
+
|
|
24
|
+
Metrics/ClassLength:
|
|
25
|
+
Exclude:
|
|
26
|
+
- lib/deepl_diff/tokenizer.rb
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.5
|
data/deepl_diff.gemspec
CHANGED
|
@@ -4,7 +4,7 @@ lib = File.expand_path("lib", __dir__)
|
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require "deepl_diff/version"
|
|
6
6
|
|
|
7
|
-
# rubocop:disable Metrics/BlockLength
|
|
7
|
+
# rubocop:disable-next Metrics/BlockLength
|
|
8
8
|
Gem::Specification.new do |spec|
|
|
9
9
|
spec.name = "deepl_diff"
|
|
10
10
|
spec.version = DeepLDiff::VERSION
|
|
@@ -21,12 +21,16 @@ DeepL API wrapper for Ruby which helps to translate only changes
|
|
|
21
21
|
between revisions of long texts.
|
|
22
22
|
)
|
|
23
23
|
spec.homepage = "https://github.com/Halvanhelv/deepl_diff"
|
|
24
|
+
spec.required_ruby_version = ">= 3.2"
|
|
24
25
|
|
|
25
26
|
if spec.respond_to?(:metadata)
|
|
26
27
|
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
|
28
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
29
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
30
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
27
31
|
else
|
|
28
32
|
raise "RubyGems 2.0 or newer is required to protect against " \
|
|
29
|
-
|
|
33
|
+
"public gem pushes."
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
@@ -36,20 +40,17 @@ between revisions of long texts.
|
|
|
36
40
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
37
41
|
spec.require_paths = ["lib"]
|
|
38
42
|
|
|
39
|
-
spec.add_development_dependency "
|
|
40
|
-
spec.add_development_dependency "
|
|
41
|
-
spec.add_development_dependency "
|
|
42
|
-
spec.add_development_dependency "
|
|
43
|
-
|
|
44
|
-
spec.
|
|
45
|
-
|
|
46
|
-
spec.add_dependency "
|
|
47
|
-
spec.add_dependency "
|
|
48
|
-
spec.add_dependency "
|
|
49
|
-
spec.add_dependency "
|
|
50
|
-
spec.add_dependency "
|
|
51
|
-
spec.add_dependency "
|
|
52
|
-
spec.add_dependency "redis"
|
|
53
|
-
spec.add_dependency "redis-namespace"
|
|
43
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
44
|
+
spec.add_development_dependency "rspec", "~> 3.13"
|
|
45
|
+
spec.add_development_dependency "rubocop", "~> 1.90"
|
|
46
|
+
spec.add_development_dependency "simplecov", "~> 1.2"
|
|
47
|
+
|
|
48
|
+
spec.add_dependency "connection_pool", ">= 2.4", "< 4.0"
|
|
49
|
+
spec.add_dependency "deepl-rb", "~> 3.9"
|
|
50
|
+
spec.add_dependency "dry-initializer", "~> 3.2"
|
|
51
|
+
spec.add_dependency "ox", "~> 2.14"
|
|
52
|
+
spec.add_dependency "punkt-segmenter", "~> 0.9"
|
|
53
|
+
spec.add_dependency "ratelimit", "~> 1.1"
|
|
54
|
+
spec.add_dependency "redis", ">= 5.0", "< 7.0"
|
|
55
|
+
spec.add_dependency "redis-namespace", "~> 1.11"
|
|
54
56
|
end
|
|
55
|
-
# rubocop:enable Metrics/BlockLength
|
data/lib/deepl_diff/chunker.rb
CHANGED
|
@@ -5,14 +5,17 @@ class DeepLDiff::Chunker
|
|
|
5
5
|
|
|
6
6
|
class Error < StandardError; end
|
|
7
7
|
|
|
8
|
-
Chunk = Struct.new(:
|
|
8
|
+
Chunk = Struct.new(:texts, :bytesize)
|
|
9
|
+
|
|
10
|
+
MAX_CHUNK_SIZE = 1700
|
|
11
|
+
COUNT_LIMIT = 300
|
|
9
12
|
|
|
10
13
|
param :values
|
|
11
14
|
option :limit, default: proc { MAX_CHUNK_SIZE }
|
|
12
15
|
option :count_limit, default: proc { COUNT_LIMIT }
|
|
13
16
|
|
|
14
17
|
def call
|
|
15
|
-
chunks.map(&:
|
|
18
|
+
chunks.map(&:texts)
|
|
16
19
|
end
|
|
17
20
|
|
|
18
21
|
def chunks
|
|
@@ -34,8 +37,8 @@ class DeepLDiff::Chunker
|
|
|
34
37
|
|
|
35
38
|
def next_chunk?(tail, value)
|
|
36
39
|
tail.nil? ||
|
|
37
|
-
(size(value) + tail.
|
|
38
|
-
tail.
|
|
40
|
+
(size(value) + tail.bytesize > limit) ||
|
|
41
|
+
tail.texts.size > count_limit
|
|
39
42
|
end
|
|
40
43
|
|
|
41
44
|
def size(text)
|
|
@@ -43,14 +46,11 @@ class DeepLDiff::Chunker
|
|
|
43
46
|
end
|
|
44
47
|
|
|
45
48
|
def update_chunk(chunk, value)
|
|
46
|
-
chunk.
|
|
47
|
-
chunk.
|
|
49
|
+
chunk.texts << value
|
|
50
|
+
chunk.bytesize += value.size
|
|
48
51
|
end
|
|
49
52
|
|
|
50
53
|
def validate_value_size(value)
|
|
51
54
|
raise Error, "Too long part #{value.size} > #{limit}" if value.size > limit
|
|
52
55
|
end
|
|
53
|
-
|
|
54
|
-
MAX_CHUNK_SIZE = 1700
|
|
55
|
-
COUNT_LIMIT = 300
|
|
56
56
|
end
|
data/lib/deepl_diff/request.rb
CHANGED
|
@@ -99,13 +99,13 @@ class DeepLDiff::Request
|
|
|
99
99
|
# Restores indexes for translated tokens
|
|
100
100
|
# => { ..., "1_1" => "Horoshiy", 1_3 => "Malchik", ... }
|
|
101
101
|
def text_tokens_translated
|
|
102
|
-
@
|
|
102
|
+
@text_tokens_translated ||=
|
|
103
103
|
restore(text_tokens, chunks_translated.flatten)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
# Restores tokens translated + adds same spacing as in source token
|
|
107
107
|
# => [[..., [ "Horoshiy", :text ], ...]]
|
|
108
|
-
# rubocop:disable Metrics/AbcSize
|
|
108
|
+
# rubocop:disable-next Metrics/AbcSize
|
|
109
109
|
def tokens_translated
|
|
110
110
|
@tokens_translated ||= tokens.dup.tap do |tokens|
|
|
111
111
|
text_tokens_translated.each do |index, value|
|
|
@@ -115,7 +115,6 @@ class DeepLDiff::Request
|
|
|
115
115
|
end
|
|
116
116
|
end
|
|
117
117
|
end
|
|
118
|
-
# rubocop:enable Metrics/AbcSize
|
|
119
118
|
|
|
120
119
|
def restore_spacing(source_value, value)
|
|
121
120
|
DeepLDiff::Spacing.restore(source_value, value)
|
|
@@ -136,7 +135,7 @@ class DeepLDiff::Request
|
|
|
136
135
|
|
|
137
136
|
def call_api(values)
|
|
138
137
|
check_rate_limit(values)
|
|
139
|
-
[api.translate(values, from, to,
|
|
138
|
+
[api.translate(values, from, to, options)].flatten.map(&:text)
|
|
140
139
|
end
|
|
141
140
|
|
|
142
141
|
def cache
|
data/lib/deepl_diff/tokenizer.rb
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
class DeepLDiff::Tokenizer <
|
|
3
|
+
class DeepLDiff::Tokenizer < Ox::Sax
|
|
4
|
+
SKIP = %i[script style].freeze
|
|
5
|
+
INNER_SPANS = %i[notranslate span end_span end_notranslate].freeze
|
|
6
|
+
HTML_OPTIONS = { smart: true, skip: :skip_none }.freeze
|
|
7
|
+
|
|
8
|
+
# Ox::Sax provides no initializer to chain to.
|
|
9
|
+
# rubocop:disable-next Lint/MissingSuper
|
|
4
10
|
def initialize(source)
|
|
5
11
|
@pos = nil
|
|
6
12
|
@source = source
|
|
@@ -38,7 +44,7 @@ class DeepLDiff::Tokenizer < ::Ox::Sax
|
|
|
38
44
|
return if value == ""
|
|
39
45
|
|
|
40
46
|
@sequence << (SKIP.include?(@context.last) ? :markup : :text)
|
|
41
|
-
@indicies << @pos - 1
|
|
47
|
+
@indicies << (@pos - 1)
|
|
42
48
|
end
|
|
43
49
|
|
|
44
50
|
def tokens
|
|
@@ -69,7 +75,7 @@ class DeepLDiff::Tokenizer < ::Ox::Sax
|
|
|
69
75
|
tokens.concat(sentences(tokens.pop[0])) if tokens.last[1] == :text
|
|
70
76
|
end
|
|
71
77
|
|
|
72
|
-
# rubocop: disable Metrics/MethodLength
|
|
78
|
+
# rubocop: disable-next Metrics/MethodLength
|
|
73
79
|
def sentences(value)
|
|
74
80
|
return [] if value.strip.empty?
|
|
75
81
|
|
|
@@ -87,7 +93,6 @@ class DeepLDiff::Tokenizer < ::Ox::Sax
|
|
|
87
93
|
[value[left..right], :text]
|
|
88
94
|
end
|
|
89
95
|
end
|
|
90
|
-
# rubocop:enable Metrics/MethodLength
|
|
91
96
|
|
|
92
97
|
# Whether the sequence is between `:notranslate` and `:end_notranslate`
|
|
93
98
|
def notranslate?
|
|
@@ -129,7 +134,7 @@ class DeepLDiff::Tokenizer < ::Ox::Sax
|
|
|
129
134
|
else
|
|
130
135
|
:markup
|
|
131
136
|
end)
|
|
132
|
-
@indicies << @pos - 1
|
|
137
|
+
@indicies << (@pos - 1)
|
|
133
138
|
end
|
|
134
139
|
|
|
135
140
|
def end_markup(name)
|
|
@@ -139,7 +144,7 @@ class DeepLDiff::Tokenizer < ::Ox::Sax
|
|
|
139
144
|
else
|
|
140
145
|
:markup
|
|
141
146
|
end)
|
|
142
|
-
@indicies << @pos - 1 unless @pos == @source.bytesize
|
|
147
|
+
@indicies << (@pos - 1) unless @pos == @source.bytesize
|
|
143
148
|
end
|
|
144
149
|
|
|
145
150
|
class << self
|
|
@@ -152,8 +157,4 @@ class DeepLDiff::Tokenizer < ::Ox::Sax
|
|
|
152
157
|
tokenizer.tokens
|
|
153
158
|
end
|
|
154
159
|
end
|
|
155
|
-
|
|
156
|
-
SKIP = %i[script style].freeze
|
|
157
|
-
INNER_SPANS = %i[notranslate span end_span end_notranslate].freeze
|
|
158
|
-
HTML_OPTIONS = { smart: true, skip: :skip_none }.freeze
|
|
159
160
|
end
|
data/lib/deepl_diff/version.rb
CHANGED
data/lib/deepl_diff.rb
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "cgi/escape"
|
|
4
|
+
require "digest/md5"
|
|
5
|
+
require "forwardable"
|
|
6
|
+
require "stringio"
|
|
7
|
+
|
|
3
8
|
require "ox"
|
|
4
9
|
require "punkt-segmenter"
|
|
5
10
|
require "dry/initializer"
|
|
@@ -19,8 +24,8 @@ module DeepLDiff
|
|
|
19
24
|
class << self
|
|
20
25
|
attr_accessor :api, :cache_store, :rate_limiter
|
|
21
26
|
|
|
22
|
-
def translate(*
|
|
23
|
-
Request.new(*
|
|
27
|
+
def translate(*)
|
|
28
|
+
Request.new(*).call
|
|
24
29
|
end
|
|
25
30
|
end
|
|
26
31
|
|
metadata
CHANGED
|
@@ -1,211 +1,194 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: deepl_diff
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Islam Gagiev
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: bundler
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.14'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '1.14'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: codeclimate-test-reporter
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.0.0
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.0.0
|
|
41
12
|
- !ruby/object:Gem::Dependency
|
|
42
13
|
name: rake
|
|
43
14
|
requirement: !ruby/object:Gem::Requirement
|
|
44
15
|
requirements:
|
|
45
16
|
- - "~>"
|
|
46
17
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
18
|
+
version: '13.0'
|
|
48
19
|
type: :development
|
|
49
20
|
prerelease: false
|
|
50
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
22
|
requirements:
|
|
52
23
|
- - "~>"
|
|
53
24
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
25
|
+
version: '13.0'
|
|
55
26
|
- !ruby/object:Gem::Dependency
|
|
56
27
|
name: rspec
|
|
57
28
|
requirement: !ruby/object:Gem::Requirement
|
|
58
29
|
requirements:
|
|
59
30
|
- - "~>"
|
|
60
31
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '3.
|
|
32
|
+
version: '3.13'
|
|
62
33
|
type: :development
|
|
63
34
|
prerelease: false
|
|
64
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
36
|
requirements:
|
|
66
37
|
- - "~>"
|
|
67
38
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '3.
|
|
39
|
+
version: '3.13'
|
|
69
40
|
- !ruby/object:Gem::Dependency
|
|
70
41
|
name: rubocop
|
|
71
42
|
requirement: !ruby/object:Gem::Requirement
|
|
72
43
|
requirements:
|
|
73
|
-
- - "
|
|
44
|
+
- - "~>"
|
|
74
45
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
46
|
+
version: '1.90'
|
|
76
47
|
type: :development
|
|
77
48
|
prerelease: false
|
|
78
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
50
|
requirements:
|
|
80
|
-
- - "
|
|
51
|
+
- - "~>"
|
|
81
52
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
53
|
+
version: '1.90'
|
|
83
54
|
- !ruby/object:Gem::Dependency
|
|
84
55
|
name: simplecov
|
|
85
56
|
requirement: !ruby/object:Gem::Requirement
|
|
86
57
|
requirements:
|
|
87
|
-
- - "
|
|
58
|
+
- - "~>"
|
|
88
59
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
60
|
+
version: '1.2'
|
|
90
61
|
type: :development
|
|
91
62
|
prerelease: false
|
|
92
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
64
|
requirements:
|
|
94
|
-
- - "
|
|
65
|
+
- - "~>"
|
|
95
66
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
67
|
+
version: '1.2'
|
|
97
68
|
- !ruby/object:Gem::Dependency
|
|
98
69
|
name: connection_pool
|
|
99
70
|
requirement: !ruby/object:Gem::Requirement
|
|
100
71
|
requirements:
|
|
101
72
|
- - ">="
|
|
102
73
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
74
|
+
version: '2.4'
|
|
75
|
+
- - "<"
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '4.0'
|
|
104
78
|
type: :runtime
|
|
105
79
|
prerelease: false
|
|
106
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
81
|
requirements:
|
|
108
82
|
- - ">="
|
|
109
83
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
84
|
+
version: '2.4'
|
|
85
|
+
- - "<"
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '4.0'
|
|
111
88
|
- !ruby/object:Gem::Dependency
|
|
112
89
|
name: deepl-rb
|
|
113
90
|
requirement: !ruby/object:Gem::Requirement
|
|
114
91
|
requirements:
|
|
115
|
-
- - "
|
|
92
|
+
- - "~>"
|
|
116
93
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
94
|
+
version: '3.9'
|
|
118
95
|
type: :runtime
|
|
119
96
|
prerelease: false
|
|
120
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
98
|
requirements:
|
|
122
|
-
- - "
|
|
99
|
+
- - "~>"
|
|
123
100
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
101
|
+
version: '3.9'
|
|
125
102
|
- !ruby/object:Gem::Dependency
|
|
126
103
|
name: dry-initializer
|
|
127
104
|
requirement: !ruby/object:Gem::Requirement
|
|
128
105
|
requirements:
|
|
129
|
-
- - "
|
|
106
|
+
- - "~>"
|
|
130
107
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
108
|
+
version: '3.2'
|
|
132
109
|
type: :runtime
|
|
133
110
|
prerelease: false
|
|
134
111
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
112
|
requirements:
|
|
136
|
-
- - "
|
|
113
|
+
- - "~>"
|
|
137
114
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
115
|
+
version: '3.2'
|
|
139
116
|
- !ruby/object:Gem::Dependency
|
|
140
117
|
name: ox
|
|
141
118
|
requirement: !ruby/object:Gem::Requirement
|
|
142
119
|
requirements:
|
|
143
|
-
- - "
|
|
120
|
+
- - "~>"
|
|
144
121
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: '
|
|
122
|
+
version: '2.14'
|
|
146
123
|
type: :runtime
|
|
147
124
|
prerelease: false
|
|
148
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
126
|
requirements:
|
|
150
|
-
- - "
|
|
127
|
+
- - "~>"
|
|
151
128
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: '
|
|
129
|
+
version: '2.14'
|
|
153
130
|
- !ruby/object:Gem::Dependency
|
|
154
131
|
name: punkt-segmenter
|
|
155
132
|
requirement: !ruby/object:Gem::Requirement
|
|
156
133
|
requirements:
|
|
157
|
-
- - "
|
|
134
|
+
- - "~>"
|
|
158
135
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '0'
|
|
136
|
+
version: '0.9'
|
|
160
137
|
type: :runtime
|
|
161
138
|
prerelease: false
|
|
162
139
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
140
|
requirements:
|
|
164
|
-
- - "
|
|
141
|
+
- - "~>"
|
|
165
142
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '0'
|
|
143
|
+
version: '0.9'
|
|
167
144
|
- !ruby/object:Gem::Dependency
|
|
168
145
|
name: ratelimit
|
|
169
146
|
requirement: !ruby/object:Gem::Requirement
|
|
170
147
|
requirements:
|
|
171
|
-
- - "
|
|
148
|
+
- - "~>"
|
|
172
149
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '
|
|
150
|
+
version: '1.1'
|
|
174
151
|
type: :runtime
|
|
175
152
|
prerelease: false
|
|
176
153
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
154
|
requirements:
|
|
178
|
-
- - "
|
|
155
|
+
- - "~>"
|
|
179
156
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '
|
|
157
|
+
version: '1.1'
|
|
181
158
|
- !ruby/object:Gem::Dependency
|
|
182
159
|
name: redis
|
|
183
160
|
requirement: !ruby/object:Gem::Requirement
|
|
184
161
|
requirements:
|
|
185
162
|
- - ">="
|
|
186
163
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '0'
|
|
164
|
+
version: '5.0'
|
|
165
|
+
- - "<"
|
|
166
|
+
- !ruby/object:Gem::Version
|
|
167
|
+
version: '7.0'
|
|
188
168
|
type: :runtime
|
|
189
169
|
prerelease: false
|
|
190
170
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
171
|
requirements:
|
|
192
172
|
- - ">="
|
|
193
173
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '0'
|
|
174
|
+
version: '5.0'
|
|
175
|
+
- - "<"
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
177
|
+
version: '7.0'
|
|
195
178
|
- !ruby/object:Gem::Dependency
|
|
196
179
|
name: redis-namespace
|
|
197
180
|
requirement: !ruby/object:Gem::Requirement
|
|
198
181
|
requirements:
|
|
199
|
-
- - "
|
|
182
|
+
- - "~>"
|
|
200
183
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '
|
|
184
|
+
version: '1.11'
|
|
202
185
|
type: :runtime
|
|
203
186
|
prerelease: false
|
|
204
187
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
188
|
requirements:
|
|
206
|
-
- - "
|
|
189
|
+
- - "~>"
|
|
207
190
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '
|
|
191
|
+
version: '1.11'
|
|
209
192
|
description: "\nDeepL API wrapper for Ruby which helps to translate only changes\nbetween
|
|
210
193
|
revisions of long texts.\n "
|
|
211
194
|
email:
|
|
@@ -214,10 +197,12 @@ executables: []
|
|
|
214
197
|
extensions: []
|
|
215
198
|
extra_rdoc_files: []
|
|
216
199
|
files:
|
|
200
|
+
- ".github/workflows/ci.yml"
|
|
201
|
+
- ".github/workflows/release.yml"
|
|
217
202
|
- ".gitignore"
|
|
218
203
|
- ".rspec"
|
|
219
204
|
- ".rubocop.yml"
|
|
220
|
-
- ".
|
|
205
|
+
- ".ruby-version"
|
|
221
206
|
- Gemfile
|
|
222
207
|
- README.md
|
|
223
208
|
- Rakefile
|
|
@@ -236,7 +221,9 @@ homepage: https://github.com/Halvanhelv/deepl_diff
|
|
|
236
221
|
licenses: []
|
|
237
222
|
metadata:
|
|
238
223
|
allowed_push_host: https://rubygems.org
|
|
239
|
-
|
|
224
|
+
homepage_uri: https://github.com/Halvanhelv/deepl_diff
|
|
225
|
+
source_code_uri: https://github.com/Halvanhelv/deepl_diff
|
|
226
|
+
rubygems_mfa_required: 'true'
|
|
240
227
|
rdoc_options: []
|
|
241
228
|
require_paths:
|
|
242
229
|
- lib
|
|
@@ -244,15 +231,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
244
231
|
requirements:
|
|
245
232
|
- - ">="
|
|
246
233
|
- !ruby/object:Gem::Version
|
|
247
|
-
version: '
|
|
234
|
+
version: '3.2'
|
|
248
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
249
236
|
requirements:
|
|
250
237
|
- - ">="
|
|
251
238
|
- !ruby/object:Gem::Version
|
|
252
239
|
version: '0'
|
|
253
240
|
requirements: []
|
|
254
|
-
rubygems_version: 3.
|
|
255
|
-
signing_key:
|
|
241
|
+
rubygems_version: 3.6.9
|
|
256
242
|
specification_version: 4
|
|
257
243
|
summary: DeepL API wrapper for Ruby which helps to translate only changes between
|
|
258
244
|
revisions of long texts.
|
data/.travis.yml
DELETED