translate_self 0.4.0 → 0.5.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
2
  SHA256:
3
- metadata.gz: fd77e2863ae0072d53dfee777def3764849c33bdeeab16a67e1065f5dce879f7
4
- data.tar.gz: 239bdf82ef13b4b862eae068b36a97ce0c11abd4d4d8dacb0bd5e6147fa3acd8
3
+ metadata.gz: 423e2804c606db8a6f62a91f8e0458f9d59ab2dde91db01a21e6ed6af6cec07b
4
+ data.tar.gz: b351c1eb545ae152158ae9903e1f367cae4a87196f35a303f05817306c65b295
5
5
  SHA512:
6
- metadata.gz: b66c9bad32762a845c6aa417f672b98a6c11a17cc88d09d6cd404aefac2d7500baab438bbbeb1e99f743b1dfa3d0d173ae89cc69084f521268de793facab2304
7
- data.tar.gz: 3d70dd2c9a5394d2f08a436a79b22ee6e257ac6646d93cb570089537b80c6308957816eeff7d64794fe3dadda8f6459f61a81a903b942ca0f6c0d0650bcae8be
6
+ metadata.gz: dbff90c881adbc6c32996efb968eb9988121529fcdf60931575f1a4f6088e4d474c07244985d6c6ba108b1a1105e0200c5fa11f79040cbbed5cbe4c6c0b10261
7
+ data.tar.gz: cc7500f06cd47d90142fb7ff2483890d3d51c2f70c1c8ad8f8e0cd1ff72fbd85fc7e1d60ed231a13cc00b9289b8c9630a27dd6d37d913ba0c393e10209f1060a
data/.gitignore CHANGED
@@ -7,6 +7,7 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /.idea/
10
+ .byebug_history
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- translate_self (0.4.0)
4
+ translate_self (0.5.0)
5
5
  deepl-rb
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -77,9 +77,20 @@ finn.translate
77
77
  # I am a Finn
78
78
  ```
79
79
 
80
- ## Beware!
80
+ ## Using with `# frozen_string_literal: true`
81
81
 
82
- Does not work if you freeze the strings.
82
+ ~~Does not work if you freeze the strings.~~
83
+
84
+ Now it does!
85
+ Just use the classes `TranslatableString` (aliased to `TString`).
86
+ So even if you have a magic comment making all your strings frozen,
87
+ you can still use the `translate` method like below:
88
+
89
+ ```ruby
90
+ hello = TranslatableString.new('hello', language: 'en', to_language: 'fi')
91
+ hello.translate
92
+ # "Moi"
93
+ ```
83
94
 
84
95
  ## Development
85
96
 
@@ -1,5 +1,6 @@
1
1
  require_relative 'translate_self/version'
2
2
  require_relative 'translate_self/translation'
3
+ require_relative 'translate_self/translatable_string'
3
4
  require 'ext/string'
4
5
  require 'deepl'
5
6
 
@@ -0,0 +1,11 @@
1
+ # A class that let's you translate strings with
2
+ # the language and to_language params even if you happen to
3
+ # freeze them. Aliased to TString.
4
+ class TranslatableString < String
5
+ def initialize(str, language: nil, to_language: nil)
6
+ replace str
7
+ self.language = language
8
+ self.to_language = to_language
9
+ end
10
+ end
11
+ TString = TranslatableString
@@ -51,7 +51,7 @@ module Translation
51
51
  warn 'No language given!' and return if to_lan.nil?
52
52
 
53
53
  response = DeepL.translate text, language, to_lan
54
- self.language = response.detected_source_language.downcase if self.language.nil?
54
+ self.language = response.detected_source_language.downcase if self.language.nil? && !frozen?
55
55
  actual_translation = response.text
56
56
  actual_translation.language = to_lan
57
57
  actual_translation
@@ -1,3 +1,3 @@
1
1
  module TranslateSelf
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: translate_self
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampo Kuokkanen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-05 00:00:00.000000000 Z
11
+ date: 2021-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deepl-rb
@@ -75,7 +75,6 @@ executables: []
75
75
  extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
- - ".byebug_history"
79
78
  - ".github/workflows/main.yml"
80
79
  - ".gitignore"
81
80
  - ".rspec"
@@ -91,6 +90,7 @@ files:
91
90
  - bin/setup
92
91
  - lib/ext/string.rb
93
92
  - lib/translate_self.rb
93
+ - lib/translate_self/translatable_string.rb
94
94
  - lib/translate_self/translation.rb
95
95
  - lib/translate_self/version.rb
96
96
  - translate_self.gemspec
data/.byebug_history DELETED
@@ -1,48 +0,0 @@
1
- c
2
- @language
3
- c
4
- @language
5
- self
6
- c
7
- self
8
- c
9
- self
10
- c
11
- self
12
- c
13
- suomalainen.language
14
- suomalainen.language = 'fi'
15
- suomalainen.language
16
- c
17
- suomalainen.language
18
- c
19
- self.language
20
- c
21
- self.language
22
- self.language = 'fi'
23
- response.detected_source_language
24
- self.language.nil?
25
- self.language
26
- self
27
- c
28
- available_languages.include?(name.to_s[-2..-1])
29
- available_languages.include?(name.to_s[-2..-1].to_sym)
30
- exit
31
- c
32
- available_languages.include?(name.to_s[-2..-1].to_sym)
33
- available_languages.include?(name.to_s[-2..-1])
34
- name.to_s[-2..-1]
35
- name
36
- c
37
- languages.map(&:code).map(&:downcase)
38
- languages.map(&:code)
39
- languages.map(&:code.downcase.to_sym)
40
- languages = DeepL.languages
41
- c
42
- self
43
- self.replace 'kon'
44
- self.instance_methods(false)
45
- self.attributes
46
- self = 'kon'
47
- language
48
- self