loco_strings 0.1.4 → 0.1.4.1

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: 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