yaml-twine-formatter 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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