loco_strings 0.1.4 → 0.1.4.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
  SHA256:
3
- metadata.gz: 36daf9f28f2ff56c824968da9a23422d2a3d50e8260154469cb93b8637097350
4
- data.tar.gz: 948f62e57518bc34201c1f6ae67f66ca2f8a0b10662389caeaf908505a12e2e5
3
+ metadata.gz: c2d39a13c5afee6bd306c83aee1793452203d521b426645f1fa885b4b3da1e29
4
+ data.tar.gz: bd6c23d23e3fb41c39d213f5f33b4f787cf4bea2e323a46b018382a402ca98ec
5
5
  SHA512:
6
- metadata.gz: '028dc48c692c84b7e6fc97b0bbd572faedb686a59c50084e2aa9bd0cc95b7f88d6a82cad905fd984a44bdf7a6b2de1166ba00a1390bf115131ca5ddb8af0246b'
7
- data.tar.gz: a88259d18e7893c48bea667080de5d2ccd2ee4904fc7a83f7a219abcc70d47cf7a1004658a06b6f83673b2cea0c5532352e6712c30d6b3a599a0a7f256176c9c
6
+ metadata.gz: 90f78c9ba808022d66e4495906c67699023cf224b552ad67b28db15ef040d1da3afabb7b72423630af5d46d17f857fa77cae032881669b222e6d17cb812d8aea
7
+ data.tar.gz: 65d4ee5ce0b91ba6e084e0ad84942e88a499476d334d5b8990e097312983b5a0ecd4a153275ff953fe9704f72df69a83320fe02694ac8357e7b3b3130ba39aab
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- loco_strings (0.1.3)
4
+ loco_strings (0.1.4.1)
5
5
  nokogiri (~> 1.13, >= 1.13.8)
6
6
 
7
7
  GEM
@@ -43,13 +43,16 @@ module LocoStrings
43
43
  def decode_strings(json)
44
44
  strings = json["strings"]
45
45
  strings.each do |key, value|
46
- @strings[key] = decode_string(key, value, @language)
46
+ val = decode_string(key, value, @language)
47
+ @strings[key] = val if val
48
+ @strings[key] = LocoString.new(key, key, value["comment"], "new") if val.nil?
49
+
47
50
  decode_translations(key, value)
48
51
  end
49
52
  end
50
53
 
51
54
  def decode_string(key, value, language)
52
- return LocoString.new(key, key, value["comment"], "new") unless value.key?("localizations")
55
+ return unless value.key?("localizations")
53
56
 
54
57
  loc = value.dig("localizations", language)
55
58
  return if loc.nil?
@@ -58,8 +61,6 @@ module LocoStrings
58
61
  decode_string_unit(key, loc, value["comment"])
59
62
  elsif loc.key?("variations")
60
63
  decode_variations(key, loc, value["comment"])
61
- else
62
- LocoString.new(key, key, value["comment"], "new")
63
64
  end
64
65
  end
65
66
 
@@ -63,7 +63,11 @@ module LocoStrings
63
63
 
64
64
  def encode_string_unit(unit)
65
65
  res = { "stringUnit" => {} }
66
- res["stringUnit"]["state"] = unit.state unless unit.state.nil?
66
+ res["stringUnit"]["state"] = if unit.state.nil?
67
+ "new"
68
+ else
69
+ unit.state
70
+ end
67
71
  res["stringUnit"]["value"] = unit.value
68
72
  res
69
73
  end
@@ -30,7 +30,7 @@ module LocoStrings
30
30
  end
31
31
 
32
32
  def update(key, value, comment = nil, stage = nil, language = @language)
33
- raise Error, "The base language is not defined" if @language.nil?
33
+ raise Error, "The base language is not defined" if language.nil?
34
34
 
35
35
  stage = "translated" if stage.nil?
36
36
  string = make_strings(key, value, comment, stage, language)
@@ -42,7 +42,7 @@ module LocoStrings
42
42
  end
43
43
 
44
44
  def update_variation(key, variant, strings, comment = nil, state = nil, language = @language) # rubocop:disable Metrics/ParameterLists
45
- raise Error, "The base language is not defined" if @language.nil?
45
+ raise Error, "The base language is not defined" if language.nil?
46
46
 
47
47
  variations = make_variations(key, variant, strings, comment, state, language)
48
48
  return if variations.nil?
@@ -58,6 +58,27 @@ module LocoStrings
58
58
  @language = language
59
59
  end
60
60
 
61
+ def value(key)
62
+ raise Error, "The base language is not defined" if @language.nil?
63
+
64
+ value_by_language(key, @language)
65
+ end
66
+
67
+ def value_by_language(key, language)
68
+ str = @translations.dig(language, key)
69
+ return nil if str.nil?
70
+
71
+ if str.is_a?(LocoString)
72
+ str.value
73
+ elsif str.is_a?(LocoVariantions)
74
+ str.strings.map { |_, v| v.value }
75
+ end
76
+ end
77
+
78
+ def unit(key, language = @language)
79
+ @translations.dig(language, key)
80
+ end
81
+
61
82
  def to_s
62
83
  result = ""
63
84
  result += "Base language: #{@language}\n" unless @language.nil?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LocoStrings
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.4.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loco_strings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksei Cherepanov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-25 00:00:00.000000000 Z
11
+ date: 2024-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri