zendesk_apps_tools 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,6 @@
1
+ {
2
+ "app": {
3
+ "description": "Play the famous zen tunes in your help desk.",
4
+ "name": "Buddha \"Machine\""
5
+ }
6
+ }
@@ -1,3 +1,5 @@
1
+ require 'fileutils'
2
+
1
3
  Given /^an app directory "(.*?)" exists$/ do |app_dir|
2
4
  @app_dir = app_dir
3
5
  FileUtils.rm_rf(@app_dir)
@@ -40,6 +42,13 @@ Then /^the app file "(.*?)" is created with:$/ do |file, content|
40
42
  File.read(file).chomp.gsub(' ', '').should == content.gsub(' ', '')
41
43
  end
42
44
 
45
+ Then /^the fixture "(.*?)" is used for "(.*?)"$/ do |fixture, app_file|
46
+ fixture_file = File.join('features', 'fixtures', fixture)
47
+ app_file_path = File.join(@app_dir, app_file)
48
+
49
+ FileUtils.cp(fixture_file, app_file_path)
50
+ end
51
+
43
52
 
44
53
  Then /^the zip file should exist in directory "(.*?)"$/ do |path|
45
54
  Dir[path + '/app-*.zip'].size.should == 1
@@ -11,23 +11,26 @@ Feature: Translate app strings
11
11
 
12
12
  Scenario: Generate template yaml from en.json
13
13
  Given an app is created in directory "tmp/aruba"
14
+ And the fixture "quote_character_translation.json" is used for "translations/en.json"
14
15
  When I run "cd tmp/aruba && zat translate create" command with the following details:
15
16
  | package name | test_package |
16
17
  Then the app file "tmp/aruba/translations/en.yml" is created with:
17
18
  """
18
19
  ---
19
- title: John Test App
20
+ title: "John Test App"
20
21
  packages:
21
22
  - default
22
23
  - app_test_package
24
+
23
25
  parts:
24
26
  - translation:
25
- key: txt.apps.test_package.app.description
26
- title: ''
27
- value: Play the famous zen tunes in your help desk.
27
+ key: "txt.apps.test_package.app.description"
28
+ title: ""
29
+ value: "Play the famous zen tunes in your help desk."
28
30
  - translation:
29
- key: txt.apps.test_package.app.name
30
- title: ''
31
- value: Buddha Machine
31
+ key: "txt.apps.test_package.app.name"
32
+ title: ""
33
+ value: "Buddha \"Machine\""
34
+
32
35
  """
33
36
 
@@ -1,6 +1,5 @@
1
1
  require 'thor'
2
2
  require 'json'
3
- require 'yaml'
4
3
  require 'zendesk_apps_tools/common'
5
4
  require 'zendesk_apps_tools/locale_identifier'
6
5
 
@@ -10,6 +9,7 @@ module ZendeskAppsTools
10
9
  include Thor::Actions
11
10
  include ZendeskAppsTools::Common
12
11
 
12
+ CHARACTERS_TO_ESCAPE = %w[ " ]
13
13
  LOCALE_ENDPOINT = "https://support.zendesk.com/api/v2/locales.json"
14
14
 
15
15
  desc 'create', 'Create Zendesk translation file from en.json'
@@ -93,20 +93,19 @@ module ZendeskAppsTools
93
93
  translations = user_translations.keys.inject({}) do |translations, key|
94
94
  translations.merge( get_translations_for(user_translations, key) )
95
95
  end
96
+ @escaped_translations = escape_values(translations)
96
97
 
97
- create_file("translations/en.yml", YAML.dump(yaml_structure(app_name, package, translations)))
98
+ @app_name = app_name
99
+ @package_name = package
100
+ template(File.join(Translate.source_root, 'templates/translation.erb.tt'), "translations/en.yml")
98
101
  end
99
102
 
100
- def yaml_structure(app_name, package_name, translations)
103
+ def escape_values(translations)
101
104
  result = {}
102
- result['title'] = app_name
103
- result['packages'] = ['default', "app_#{package_name}"]
104
- result['parts'] = translations.map do |key, value|
105
- translation_item = { 'translation' => {} }
106
- translation_item['translation']['key'] = "txt.apps.#{package_name}.#{key}"
107
- translation_item['translation']['title'] = ''
108
- translation_item['translation']['value'] = value
109
- translation_item
105
+ translations.each do |key, value|
106
+ CHARACTERS_TO_ESCAPE.each do |char|
107
+ result[key] = value.gsub(char, "\\#{char}")
108
+ end
110
109
  end
111
110
 
112
111
  result
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: "<%= @app_name %>"
3
+ packages:
4
+ - default
5
+ - app_<%= @package_name %>
6
+
7
+ parts:
8
+ <% @escaped_translations.each do |key, value| -%>
9
+ - translation:
10
+ key: "txt.apps.<%= @package_name %>.<%= key %>"
11
+ title: ""
12
+ value: "<%= value %>"
13
+ <% 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: 1.2.1
4
+ version: 1.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-07-12 00:00:00.000000000 Z
15
+ date: 2013-07-15 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: thor
@@ -165,9 +165,11 @@ files:
165
165
  - app_template/manifest.json.tt
166
166
  - app_template/templates/layout.hdbs
167
167
  - app_template/translations/en.json
168
+ - templates/translation.erb.tt
168
169
  - README.md
169
170
  - LICENSE
170
171
  - features/clean.feature
172
+ - features/fixtures/quote_character_translation.json
171
173
  - features/new.feature
172
174
  - features/package.feature
173
175
  - features/step_definitions/app_steps.rb
@@ -201,6 +203,7 @@ specification_version: 3
201
203
  summary: Tools to help you develop Zendesk Apps.
202
204
  test_files:
203
205
  - features/clean.feature
206
+ - features/fixtures/quote_character_translation.json
204
207
  - features/new.feature
205
208
  - features/package.feature
206
209
  - features/step_definitions/app_steps.rb