yaml-twine-formatter 0.1.0 → 1.0.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.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/yaml-twine-formatter.rb +56 -0
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2f603033bab38953c5dffafdcad2e047d6819e5e
4
- data.tar.gz: 4bd2cfec5ca465549ca2a8e7d556a3965549aa14
2
+ SHA256:
3
+ metadata.gz: d495952a5c265f67cf3e9ad3efb9e1cf4ca5a8bd768151c5fe6cdcb8ca0d3375
4
+ data.tar.gz: 603f36ccaaad6d123bd3c0afe66ed6c51f0b672fbf3946141ea94bcec51c8340
5
5
  SHA512:
6
- metadata.gz: c33d91a046a8ad4764144a2846ca129e77eb28ba5c4387a02cc6cbb6f91c60a75921ae591d445977cabe2e1686e119145842e3c6a1f7671bda503b4fe7e70fe9
7
- data.tar.gz: dd05ceb77c112a0993a60785aace47be7a387fc8519b28fd19162f432fd5fe5715b5e169248af8e653dc6c07f9f2f95dc5dd508c820d5fbd292638e4720b11c9
6
+ metadata.gz: 00a92cd71e9abb7d9072eb8cc17c46381c28c1d185bc23a63246de9816e6411f8408f9e2020900fc83fae5a5002a47b6fceec55898c05c583999123216e463ab
7
+ data.tar.gz: 3ce8143bb7ed033a12352345b4c5511c9ec94b80987bd872200dad03a95af897eee1d5003017126a5bf0f2ee4518ab84a92504d1fb6c0b680f72e54810736b65
@@ -40,6 +40,62 @@ module Twine
40
40
 
41
41
  table
42
42
  end
43
+
44
+ def read(io, lang)
45
+ entries = YAML.load(io)
46
+ entries.each do |key, value|
47
+ tokens = /\[\[(.*)?\]\]\.\[(.*)\]/.match(key)
48
+ section = tokens[1]
49
+ def_key = tokens[2]
50
+ set_translation_in_section(section, def_key, lang, value)
51
+ end
52
+ end
53
+
54
+ def set_translation_in_section(section, key, lang, value)
55
+ value = value.gsub("\n", "\\n")
56
+
57
+ if @twine_file.definitions_by_key.include?(key)
58
+ definition = @twine_file.definitions_by_key[key]
59
+ reference = @twine_file.definitions_by_key[definition.reference_key] if definition.reference_key
60
+
61
+ ref_section = nil
62
+ @twine_file.sections.each do |s|
63
+ if s.definitions.find { |d| d.key == key }
64
+ ref_section = s
65
+ break
66
+ end
67
+ end
68
+
69
+ if !ref_section or ref_section.name != section
70
+ ref_section_name = (ref_section && ref_section.name) or ""
71
+ Twine::stdout.puts "WARNING: '#{key}' in section [[#{section}]] found in different section [[#{ref_section_name}]]. Translation not written."
72
+ elsif !reference or value != reference.translations[lang]
73
+ definition.translations[lang] = value
74
+ end
75
+ elsif @options[:consume_all]
76
+ Twine::stdout.puts "Adding new definition '#{key}' in section [[#{section}]] to twine file."
77
+ current_section = @twine_file.sections.find { |s| s.name == section }
78
+ unless current_section
79
+ current_section = TwineSection.new(section)
80
+ @twine_file.sections.insert(0, current_section)
81
+ end
82
+ current_definition = TwineDefinition.new(key)
83
+ current_section.definitions << current_definition
84
+
85
+ if @options[:tags] && @options[:tags].length > 0
86
+ current_definition.tags = @options[:tags]
87
+ end
88
+
89
+ @twine_file.definitions_by_key[key] = current_definition
90
+ @twine_file.definitions_by_key[key].translations[lang] = value
91
+ else
92
+ Twine::stdout.puts "WARNING: '#{key}' not found in twine file."
93
+ end
94
+
95
+ if !@twine_file.language_codes.include?(lang)
96
+ @twine_file.add_language_code(lang)
97
+ end
98
+ end
43
99
  end
44
100
  end
45
101
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaml-twine-formatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Šimon Kručinin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-20 00:00:00.000000000 Z
11
+ date: 2018-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twine
@@ -52,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  version: '0'
53
53
  requirements: []
54
54
  rubyforge_project:
55
- rubygems_version: 2.5.2
55
+ rubygems_version: 2.7.6
56
56
  signing_key:
57
57
  specification_version: 4
58
58
  summary: A Twine formatter to YAML