zendesk_apps_tools 2.8.4 → 2.9.0

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
  SHA1:
3
- metadata.gz: 913c6906e00808e483ae9f6ab5b84a89fb4a3836
4
- data.tar.gz: f558c253f873303089760cf7705b9d639f27e11c
3
+ metadata.gz: f7f07cc7695763e79c8c6ae5b9b61fcb3d5d5f30
4
+ data.tar.gz: 5d42c9fb5a891eeeb23869f8fff121561c76902c
5
5
  SHA512:
6
- metadata.gz: bd77337c7bba91d1137fdc1664648601d0c4c524950e6849abc106e69427912f3102969ac9deae4399344a7b9c569ef2fe7005196489132d8426b05894e384f8
7
- data.tar.gz: f59e7de38f81b7666131f95f22fb93c45c391d02c2b4211babcae872947d7393c125f6e98fc9e59e8f661532100347c2d968f50f697614fbad702ffdd486c4c0
6
+ metadata.gz: 7f48d8d0c53e507a3df7ab019d5da9a0e455e6778ee103d70fd012a633cfaa7bcfcbf87bb72a8e6ebce411e100f9e0200d26496a4556b6a8184a328524b6c779
7
+ data.tar.gz: b761831cb58b10c27daa177e39d8a912a2078472a6d4ac35c875aef4121907683d4b95949c1d53c35a02c98a1d1db6e0e8af3c593273b8016a966dacc1e2cd63
@@ -33,19 +33,7 @@ module ZendeskAppsTools
33
33
  desc 'to_json', 'Convert Zendesk translation yml to I18n formatted json'
34
34
  shared_options(except: [:clean])
35
35
  def to_json
36
- require 'yaml'
37
36
  setup_path(options[:path]) if options[:path]
38
- en_yml = YAML.load_file("#{destination_root}/translations/en.yml")
39
- package = /^txt.apps.([^\.]+)/.match(en_yml['parts'][0]['translation']['key'])[1]
40
- translations = en_yml['parts'].map { |part| part['translation'] }
41
- translations.select! do |translation|
42
- obsolete = translation['obsolete']
43
- next true unless obsolete
44
- Date.parse(obsolete.to_s) > Date.today
45
- end
46
- en_hash = array_to_nested_hash(translations)['txt']['apps'][package]
47
- en_hash['app']['package'] = package
48
-
49
37
  write_json('translations/en.json', en_hash)
50
38
  end
51
39
 
@@ -76,9 +64,9 @@ module ZendeskAppsTools
76
64
  def pseudotranslate
77
65
  setup_path(options[:path]) if options[:path]
78
66
 
79
- package = package_name_from_json(error_out: true)
67
+ package = package_name(error_out: true)
80
68
 
81
- pseudo = build_pseudotranslation(en_json, package)
69
+ pseudo = build_pseudotranslation(en_hash, package)
82
70
  write_json('translations/fr.json', pseudo)
83
71
  end
84
72
 
@@ -177,7 +165,7 @@ module ZendeskAppsTools
177
165
  require 'faraday'
178
166
 
179
167
  if options[:locales]
180
- content = File.read(File.expand_path(options[:locales]))
168
+ content = read_file(options[:locales])
181
169
  locales = JSON.parse(content)
182
170
  return locales.map do |locale|
183
171
  { 'locale' => locale, 'url' => "#{LOCALE_BASE_ENDPOINT}/#{locale}.json" }
@@ -194,9 +182,13 @@ module ZendeskAppsTools
194
182
  end
195
183
  end
196
184
 
185
+ def read_file(path)
186
+ File.read(File.expand_path(path))
187
+ end
188
+
197
189
  def package_name_for_update
198
190
  options[:package_name] ||
199
- package_name_from_json(error_out: options[:unattended]) ||
191
+ package_name(error_out: options[:unattended]) ||
200
192
  get_value_from_stdin('What is the package name for this app? (without leading app_)',
201
193
  valid_regex: /^[a-z_]+$/,
202
194
  error_msg: 'Invalid package name, try again:')
@@ -209,11 +201,41 @@ module ZendeskAppsTools
209
201
  end
210
202
  end
211
203
 
204
+ def en_yaml
205
+ @en_yaml ||= begin
206
+ path = "#{destination_root}/translations/en.yml"
207
+ require 'yaml'
208
+ YAML.load_file(path) if File.exist? path
209
+ end
210
+ end
211
+
212
+ def en_hash
213
+ @en_hash ||= begin
214
+ return nil unless en_yaml
215
+ package = /^txt.apps.([^\.]+)/.match(en_yaml['parts'][0]['translation']['key'])[1]
216
+ translations = en_yaml['parts'].map { |part| part['translation'] }
217
+ translations.select! do |translation|
218
+ obsolete = translation['obsolete']
219
+ next true unless obsolete
220
+ Date.parse(obsolete.to_s) > Date.today
221
+ end
222
+ en_hash = array_to_nested_hash(translations)['txt']['apps'][package]
223
+ en_hash['app']['package'] = package
224
+ en_hash
225
+ end
226
+ end
227
+
212
228
  def package_name_from_json(error_out: false)
213
229
  package = en_json && en_json['app']['package']
214
230
  return package if package
215
231
  say_error_and_exit 'No package defined inside en.json!' if error_out
216
232
  end
233
+
234
+ def package_name(error_out: false)
235
+ package = en_hash && en_hash['app']['package']
236
+ return package if package
237
+ say_error_and_exit 'No package defined inside en.yml!' if error_out
238
+ end
217
239
  end
218
240
  end
219
241
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ZendeskAppsTools
3
- VERSION = '2.8.4'
3
+ VERSION = '2.9.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.4
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-03-08 00:00:00.000000000 Z
14
+ date: 2018-03-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: thor
@@ -103,14 +103,14 @@ dependencies:
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: 4.7.0
106
+ version: 4.10.0
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: 4.7.0
113
+ version: 4.10.0
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: sinatra-cross_origin
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -321,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
321
  version: 1.3.6
322
322
  requirements: []
323
323
  rubyforge_project:
324
- rubygems_version: 2.6.11
324
+ rubygems_version: 2.4.5.4
325
325
  signing_key:
326
326
  specification_version: 4
327
327
  summary: Tools to help you develop Zendesk Apps.