zendesk_apps_support 4.2.1 → 4.3.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: 6fe5bdb5612e8bb4a6a19203bac397d803344e56
4
- data.tar.gz: f26d674ecd167f9e89d105c709ebc87d065a4144
3
+ metadata.gz: c35e29cfb59ea49f7c17e2c67e7e87448d082d70
4
+ data.tar.gz: 9b9bed066d256daedaaddb4430f8c8e2cf77d2b3
5
5
  SHA512:
6
- metadata.gz: 4182a52d6006ddf7bc3e408ba6c9c6b7385dcbf5c87170ff1d73267df409701676cb19d7705dacc475ead01320f386a9e3a3602fb2e52731b3ef0b57cfe84c1b
7
- data.tar.gz: be090702051d35c47de0a4a01ca65dafb86231b0163d02e435579cd32d337a1a4a61e4c5fa8828bac7c9cc45c31333bc8f110e873c44ab60d377ee246ba6c338
6
+ metadata.gz: f77764d71a3a8a65e69a50b8ee708ffc25f110694d28b218bb001d7675a8949f30b2d7896b1b5b394a3d99aa4a0624f84d23c7ac12c632a08b19d22457ac0ed1
7
+ data.tar.gz: 61c0cdff51c2ddff19b94d24b37355c5d01ec1c57fcecd379f9e09df716a3280373548e7c76a28b3e9268052f82ff229efa103b8fe9ab0322f6008fd4801f528
@@ -57,6 +57,7 @@ en:
57
57
  banner:
58
58
  invalid_format: Banner image must be a PNG file.
59
59
  invalid_size: Invalid banner image dimensions. Must be %{required_banner_width}x%{required_banner_height}px.
60
+ dirty_svg: '%{svg} contains invalid markup and was unable to be automatically regenerated.'
60
61
  oauth_keys:
61
62
  missing:
62
63
  one: 'Missing required oauth field in manifest: %{missing_keys}'
@@ -116,3 +117,4 @@ en:
116
117
  deprecated_version: You are targeting a deprecated version of the framework.
117
118
  Your app will work, but it might break when the new framework version
118
119
  is deployed.
120
+ sanitised_svg: "The markup in %{svg} has been edited for use in Zendesk, and may not display as intended."
@@ -27,6 +27,7 @@ module ZendeskAppsSupport
27
27
  autoload :Stylesheets, 'zendesk_apps_support/validations/stylesheets'
28
28
  autoload :Requirements, 'zendesk_apps_support/validations/requirements'
29
29
  autoload :Banner, 'zendesk_apps_support/validations/banner'
30
+ autoload :Svg, 'zendesk_apps_support/validations/svg'
30
31
  end
31
32
 
32
33
  class Manifest
@@ -30,6 +30,7 @@ module ZendeskAppsSupport
30
30
  def validate(marketplace: true)
31
31
  [].tap do |errors|
32
32
  errors << Validations::Manifest.call(self)
33
+
33
34
  if has_manifest?
34
35
  errors << Validations::Marketplace.call(self) if marketplace
35
36
  errors << Validations::Source.call(self)
@@ -43,6 +44,7 @@ module ZendeskAppsSupport
43
44
  end
44
45
 
45
46
  errors << Validations::Banner.call(self) if has_banner?
47
+ errors << Validations::Svg.call(self) if has_svgs?
46
48
 
47
49
  errors.flatten!.compact!
48
50
  end
@@ -91,6 +93,10 @@ module ZendeskAppsSupport
91
93
  @lib_files ||= js_files.select { |f| f =~ %r{^lib/} }
92
94
  end
93
95
 
96
+ def svg_files
97
+ @svg_files ||= files.select { |f| f =~ %r{^assets/.*\.svg$} }
98
+ end
99
+
94
100
  def template_files
95
101
  files.select { |f| f =~ %r{^templates/.*\.hdbs$} }
96
102
  end
@@ -268,6 +274,10 @@ module ZendeskAppsSupport
268
274
  has_file?('assets/banner.png')
269
275
  end
270
276
 
277
+ def has_svgs?
278
+ svg_files.any?
279
+ end
280
+
271
281
  def location_icons
272
282
  Hash.new { |h, k| h[k] = {} }.tap do |location_icons|
273
283
  manifest.location_options.each do |location_options|
@@ -7,7 +7,7 @@ module ZendeskAppsSupport
7
7
  BANNER_WIDTH = 830
8
8
  BANNER_HEIGHT = 200
9
9
 
10
- class <<self
10
+ class << self
11
11
  def call(package)
12
12
  File.open(package.path_to('assets/banner.png'), 'rb') do |fh|
13
13
  begin
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ require 'loofah'
3
+
4
+ module ZendeskAppsSupport
5
+ module Validations
6
+ module Svg
7
+ class << self
8
+ def call(package)
9
+ errors = []
10
+ package.svg_files.each do |svg|
11
+ markup = svg.read
12
+ clean_markup = Loofah.scrub_xml_document(markup, :prune).to_html
13
+ filepath = svg.relative_path
14
+
15
+ next if clean_markup == markup
16
+ begin
17
+ IO.write(filepath, clean_markup)
18
+ package.warnings << I18n.t('txt.apps.admin.warning.sanitised_svg', svg: filepath)
19
+ rescue
20
+ errors << ValidationError.new(:dirty_svg, svg: filepath)
21
+ end
22
+ end
23
+ errors
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.1
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -111,6 +111,34 @@ dependencies:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
113
  version: 0.3.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: loofah
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ - !ruby/object:Gem::Dependency
129
+ name: nokogiri
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 1.6.8.1
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 1.6.8.1
114
142
  - !ruby/object:Gem::Dependency
115
143
  name: rspec
116
144
  requirement: !ruby/object:Gem::Requirement
@@ -167,6 +195,20 @@ dependencies:
167
195
  - - "~>"
168
196
  - !ruby/object:Gem::Version
169
197
  version: 0.46.0
198
+ - !ruby/object:Gem::Dependency
199
+ name: byebug
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
170
212
  description: Support to help you develop Zendesk Apps.
171
213
  email:
172
214
  - dev@zendesk.com
@@ -207,6 +249,7 @@ files:
207
249
  - lib/zendesk_apps_support/validations/requirements.rb
208
250
  - lib/zendesk_apps_support/validations/source.rb
209
251
  - lib/zendesk_apps_support/validations/stylesheets.rb
252
+ - lib/zendesk_apps_support/validations/svg.rb
210
253
  - lib/zendesk_apps_support/validations/templates.rb
211
254
  - lib/zendesk_apps_support/validations/translations.rb
212
255
  - lib/zendesk_apps_support/validations/validation_error.rb
@@ -222,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
265
  requirements:
223
266
  - - ">="
224
267
  - !ruby/object:Gem::Version
225
- version: '0'
268
+ version: '2.0'
226
269
  required_rubygems_version: !ruby/object:Gem::Requirement
227
270
  requirements:
228
271
  - - ">="
@@ -230,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
273
  version: 1.3.6
231
274
  requirements: []
232
275
  rubyforge_project:
233
- rubygems_version: 2.6.8
276
+ rubygems_version: 2.6.13
234
277
  signing_key:
235
278
  specification_version: 4
236
279
  summary: Support to help you develop Zendesk Apps.