zendesk_apps_support 1.11.0 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/locales/en.yml +3 -0
- data/config/locales/translations/zendesk_apps_support.yml +13 -0
- data/lib/zendesk_apps_support.rb +8 -6
- data/lib/zendesk_apps_support/package.rb +50 -9
- data/lib/zendesk_apps_support/validations/manifest.rb +6 -4
- data/lib/zendesk_apps_support/validations/package.rb +24 -0
- data/lib/zendesk_apps_support/validations/requirements.rb +32 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/validations/fixture/requirements.json +22 -0
- data/spec/validations/manifest_spec.rb +10 -10
- data/spec/validations/requirements_spec.rb +23 -0
- data/spec/validations/translations_spec.rb +1 -3
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9d77a73de7a3e75fcae675994285e086f9c86cc
|
4
|
+
data.tar.gz: a4451063938bc04fa59d98831b05b6939c6eb2ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2dd54326aa0dab31f9c6b5325378e088a38ec8b655d1409eba64eb6864db08cdb2d867706afbe468bf36c25315f15d17273e54fd76a7e58f6db4c01b3960672
|
7
|
+
data.tar.gz: 7ed3221747e4b490502da442caeae6c0e82f3d806c2f2ea51b3a49360ab7ea226bc0e926a8a4c09ad2c64dcb662f8ce6c55c9b99f86c7f393eca5e148a629a33
|
data/config/locales/en.yml
CHANGED
@@ -9,12 +9,15 @@ en:
|
|
9
9
|
jshint:
|
10
10
|
one: 'JSHint error in %{file}: %{errors}'
|
11
11
|
other: 'JSHint errors in %{file}: %{errors}'
|
12
|
+
missing_location_and_requirements: Missing app location or requirements
|
12
13
|
manifest_not_json: manifest is not proper JSON. %{errors}
|
13
14
|
missing_manifest: Could not find manifest.json
|
15
|
+
missing_requirements: Could not find requirements.json
|
14
16
|
manifest_keys:
|
15
17
|
missing:
|
16
18
|
one: 'Missing required field in manifest: %{missing_keys}'
|
17
19
|
other: 'Missing required fields in manifest: %{missing_keys}'
|
20
|
+
requirements_not_json: requirements.json is not proper JSON. %{errors}
|
18
21
|
oauth_keys:
|
19
22
|
missing:
|
20
23
|
one: 'Missing required oauth field in manifest: %{missing_keys}'
|
@@ -5,6 +5,7 @@ title: "Apps Support"
|
|
5
5
|
packages:
|
6
6
|
- default
|
7
7
|
- apps_support
|
8
|
+
- classic
|
8
9
|
|
9
10
|
parts:
|
10
11
|
- translation:
|
@@ -15,6 +16,10 @@ parts:
|
|
15
16
|
key: "txt.apps.admin.error.app_build.jshint.other"
|
16
17
|
title: "App builder job: JSHint error messages"
|
17
18
|
value: "JSHint errors in %{file}: %{errors}"
|
19
|
+
- translation:
|
20
|
+
key: "txt.apps.admin.error.app_build.missing_location_and_requirements"
|
21
|
+
title: "App builder job: missing location and requirements error"
|
22
|
+
value: "Missing app location or requirements"
|
18
23
|
- translation:
|
19
24
|
key: "txt.apps.admin.error.app_build.manifest_not_json"
|
20
25
|
title: "App builder job: manifest is invalid JSON error"
|
@@ -23,6 +28,10 @@ parts:
|
|
23
28
|
key: "txt.apps.admin.error.app_build.missing_manifest"
|
24
29
|
title: "App builder job: missing manifest error"
|
25
30
|
value: "Could not find manifest.json"
|
31
|
+
- translation:
|
32
|
+
key: "txt.apps.admin.error.app_build.missing_requirements"
|
33
|
+
title: "App builder job: missing requirements error"
|
34
|
+
value: "Could not find requirements.json"
|
26
35
|
- translation:
|
27
36
|
key: "txt.apps.admin.error.app_build.manifest_keys.missing.one"
|
28
37
|
title: "App builder job: missing manifest fields error"
|
@@ -31,6 +40,10 @@ parts:
|
|
31
40
|
key: "txt.apps.admin.error.app_build.manifest_keys.missing.other"
|
32
41
|
title: "App builder job: missing manifest fields error"
|
33
42
|
value: "Missing required fields in manifest: %{missing_keys}"
|
43
|
+
- translation:
|
44
|
+
key: "txt.apps.admin.error.app_build.requirements_not_json"
|
45
|
+
title: "App builder job: requirements file is invalid JSON error"
|
46
|
+
value: "requirements.json is not proper JSON. %{errors}"
|
34
47
|
- translation:
|
35
48
|
key: "txt.apps.admin.error.app_build.oauth_keys.missing.one"
|
36
49
|
title: "App builder job: missing oauth fields error"
|
data/lib/zendesk_apps_support.rb
CHANGED
@@ -3,20 +3,22 @@ module ZendeskAppsSupport
|
|
3
3
|
require 'zendesk_apps_support/sass_functions'
|
4
4
|
require 'zendesk_apps_support/engine'
|
5
5
|
|
6
|
-
autoload :AppFile,
|
7
|
-
autoload :BuildTranslation,
|
8
|
-
autoload :I18n,
|
9
|
-
autoload :Package,
|
10
|
-
autoload :AppVersion,
|
11
|
-
autoload :StylesheetCompiler,
|
6
|
+
autoload :AppFile, 'zendesk_apps_support/app_file'
|
7
|
+
autoload :BuildTranslation, 'zendesk_apps_support/build_translation'
|
8
|
+
autoload :I18n, 'zendesk_apps_support/i18n'
|
9
|
+
autoload :Package, 'zendesk_apps_support/package'
|
10
|
+
autoload :AppVersion, 'zendesk_apps_support/app_version'
|
11
|
+
autoload :StylesheetCompiler, 'zendesk_apps_support/stylesheet_compiler'
|
12
12
|
|
13
13
|
module Validations
|
14
14
|
autoload :ValidationError, 'zendesk_apps_support/validations/validation_error'
|
15
|
+
autoload :Package, 'zendesk_apps_support/validations/package'
|
15
16
|
autoload :Manifest, 'zendesk_apps_support/validations/manifest'
|
16
17
|
autoload :Source, 'zendesk_apps_support/validations/source'
|
17
18
|
autoload :Templates, 'zendesk_apps_support/validations/templates'
|
18
19
|
autoload :Translations, 'zendesk_apps_support/validations/translations'
|
19
20
|
autoload :JSHintValidationError, 'zendesk_apps_support/validations/validation_error'
|
20
21
|
autoload :Stylesheets, 'zendesk_apps_support/validations/stylesheets'
|
22
|
+
autoload :Requirements, 'zendesk_apps_support/validations/requirements'
|
21
23
|
end
|
22
24
|
end
|
@@ -8,7 +8,7 @@ module ZendeskAppsSupport
|
|
8
8
|
|
9
9
|
DEFAULT_LAYOUT = Erubis::Eruby.new( File.read(File.expand_path('../assets/default_template.html.erb', __FILE__)) )
|
10
10
|
DEFAULT_SCSS = File.read(File.expand_path('../assets/default_styles.scss', __FILE__))
|
11
|
-
SRC_TEMPLATE
|
11
|
+
SRC_TEMPLATE = Erubis::Eruby.new( File.read(File.expand_path('../assets/src.js.erb', __FILE__)) )
|
12
12
|
|
13
13
|
attr_reader :root, :warnings
|
14
14
|
|
@@ -18,11 +18,24 @@ module ZendeskAppsSupport
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def validate
|
21
|
-
|
22
|
-
|
23
|
-
Validations::
|
24
|
-
Validations::
|
25
|
-
Validations::
|
21
|
+
[].tap do |errors|
|
22
|
+
|
23
|
+
errors << Validations::Package.call(self)
|
24
|
+
errors << Validations::Manifest.call(self)
|
25
|
+
errors << Validations::Translations.call(self)
|
26
|
+
|
27
|
+
if has_location?
|
28
|
+
errors << Validations::Source.call(self)
|
29
|
+
errors << Validations::Templates.call(self)
|
30
|
+
errors << Validations::Stylesheets.call(self)
|
31
|
+
end
|
32
|
+
|
33
|
+
if has_requirements?
|
34
|
+
errors << Validations::Requirements.call(self)
|
35
|
+
end
|
36
|
+
|
37
|
+
errors.flatten!
|
38
|
+
end
|
26
39
|
end
|
27
40
|
|
28
41
|
def files
|
@@ -38,11 +51,15 @@ module ZendeskAppsSupport
|
|
38
51
|
end
|
39
52
|
|
40
53
|
def manifest_json
|
41
|
-
|
54
|
+
read_json("manifest.json")
|
55
|
+
end
|
56
|
+
|
57
|
+
def requirements_json
|
58
|
+
read_json("requirements.json")
|
42
59
|
end
|
43
60
|
|
44
61
|
def translations
|
45
|
-
|
62
|
+
read_json("translations/en.json", false)
|
46
63
|
end
|
47
64
|
|
48
65
|
def app_translations
|
@@ -51,7 +68,7 @@ module ZendeskAppsSupport
|
|
51
68
|
|
52
69
|
def readified_js(app_name, app_id, asset_url_prefix, settings={})
|
53
70
|
manifest = manifest_json
|
54
|
-
source =
|
71
|
+
source = read_file("app.js")
|
55
72
|
name = app_name || manifest[:name] || 'Local App'
|
56
73
|
location = manifest[:location]
|
57
74
|
app_class_name = "app-#{app_id}"
|
@@ -81,6 +98,18 @@ module ZendeskAppsSupport
|
|
81
98
|
customer_css = File.exist?(css_file) ? File.read(css_file) : ""
|
82
99
|
end
|
83
100
|
|
101
|
+
def has_location?
|
102
|
+
manifest_json[:location]
|
103
|
+
end
|
104
|
+
|
105
|
+
def has_requirements?
|
106
|
+
!requirements_json.nil?
|
107
|
+
end
|
108
|
+
|
109
|
+
def is_requirements_only?
|
110
|
+
has_requirements? && !has_location?
|
111
|
+
end
|
112
|
+
|
84
113
|
private
|
85
114
|
|
86
115
|
def compiled_templates(app_id, asset_url_prefix)
|
@@ -112,5 +141,17 @@ module ZendeskAppsSupport
|
|
112
141
|
end
|
113
142
|
files
|
114
143
|
end
|
144
|
+
|
145
|
+
def read_file(path)
|
146
|
+
file_path = File.join(root, path)
|
147
|
+
File.read(File.join(root, path))
|
148
|
+
end
|
149
|
+
|
150
|
+
def read_json(path, symbolize_names = true)
|
151
|
+
file = read_file(path)
|
152
|
+
unless file.nil?
|
153
|
+
JSON.parse(read_file(path), :symbolize_names => symbolize_names)
|
154
|
+
end
|
155
|
+
end
|
115
156
|
end
|
116
157
|
end
|
@@ -4,7 +4,7 @@ module ZendeskAppsSupport
|
|
4
4
|
module Validations
|
5
5
|
module Manifest
|
6
6
|
|
7
|
-
REQUIRED_MANIFEST_FIELDS = %w( author defaultLocale
|
7
|
+
REQUIRED_MANIFEST_FIELDS = %w( author defaultLocale frameworkVersion ).freeze
|
8
8
|
OAUTH_REQUIRED_FIELDS = %w( client_id client_secret authorize_uri access_token_uri ).freeze
|
9
9
|
LOCATIONS_AVAILABLE = %w( top_bar nav_bar ticket_sidebar new_ticket_sidebar user_sidebar ).freeze
|
10
10
|
TYPES_AVAILABLE = %W( text password checkbox url number multiline hidden ).freeze
|
@@ -16,18 +16,20 @@ module ZendeskAppsSupport
|
|
16
16
|
return [ValidationError.new(:missing_manifest)] unless manifest
|
17
17
|
|
18
18
|
manifest = MultiJson.load(manifest.read)
|
19
|
-
|
20
19
|
[].tap do |errors|
|
21
20
|
errors << missing_keys_error(manifest)
|
22
21
|
errors << default_locale_error(manifest, package)
|
23
|
-
errors << invalid_location_error(manifest)
|
24
|
-
errors << duplicate_location_error(manifest)
|
25
22
|
errors << invalid_version_error(manifest, package)
|
26
23
|
errors << oauth_error(manifest)
|
27
24
|
errors << parameters_error(manifest)
|
28
25
|
errors << invalid_hidden_parameter_error(manifest)
|
29
26
|
errors << invalid_type_error(manifest)
|
30
27
|
errors << name_as_parameter_name_error(manifest)
|
28
|
+
|
29
|
+
if package.has_location?
|
30
|
+
errors << invalid_location_error(manifest)
|
31
|
+
errors << duplicate_location_error(manifest)
|
32
|
+
end
|
31
33
|
errors.compact!
|
32
34
|
end
|
33
35
|
rescue MultiJson::DecodeError => e
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module ZendeskAppsSupport
|
2
|
+
module Validations
|
3
|
+
module Package
|
4
|
+
|
5
|
+
class <<self
|
6
|
+
def call(package)
|
7
|
+
[].tap do |errors|
|
8
|
+
errors << has_location_or_requirements(package)
|
9
|
+
errors.compact!
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def has_location_or_requirements(package)
|
16
|
+
if !package.has_location? && !package.has_requirements?
|
17
|
+
ValidationError.new('missing_location_and_requirements')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'multi_json'
|
2
|
+
|
3
|
+
module ZendeskAppsSupport
|
4
|
+
module Validations
|
5
|
+
module Requirements
|
6
|
+
|
7
|
+
class <<self
|
8
|
+
def call(package)
|
9
|
+
requirements = package.files.find { |f| f.relative_path == 'requirements.json' }
|
10
|
+
|
11
|
+
errors = []
|
12
|
+
|
13
|
+
if requirements && !valid_json?(requirements)
|
14
|
+
errors << ValidationError.new(:requirements_not_json)
|
15
|
+
end
|
16
|
+
|
17
|
+
errors
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def valid_json? json
|
23
|
+
MultiJson.load(json)
|
24
|
+
true
|
25
|
+
rescue MultiJson::DecodeError
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"targets": {
|
3
|
+
"jira_story_target": {
|
4
|
+
"title": "blah",
|
5
|
+
"type": "jira_target",
|
6
|
+
"active": true,
|
7
|
+
"target_url": "http://example.org"
|
8
|
+
}
|
9
|
+
},
|
10
|
+
|
11
|
+
"triggers": {
|
12
|
+
"submit_trigger": {
|
13
|
+
"title": "whatever",
|
14
|
+
"position": "whatever",
|
15
|
+
"active": true,
|
16
|
+
"conditions": {
|
17
|
+
"all": [{ "field": "status", "operator": "less_than", "value": "solved" }]
|
18
|
+
},
|
19
|
+
"actions" : []
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
@@ -15,7 +15,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
15
15
|
def create_package(parameter_hash)
|
16
16
|
params = default_required_params(parameter_hash)
|
17
17
|
manifest = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(params))
|
18
|
-
mock('Package', :files => [manifest])
|
18
|
+
mock('Package', :files => [manifest], :has_location? => true)
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'should have an error when manifest.json is missing' do
|
@@ -28,16 +28,16 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
28
28
|
|
29
29
|
it 'should have an error when required field is missing' do
|
30
30
|
manifest = mock('AppFile', :relative_path => 'manifest.json', :read => "{}")
|
31
|
-
package = mock('Package', :files => [manifest])
|
31
|
+
package = mock('Package', :files => [manifest], :has_location? => true)
|
32
32
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
33
33
|
|
34
|
-
errors.first().to_s.should eql 'Missing required fields in manifest: author, defaultLocale,
|
34
|
+
errors.first().to_s.should eql 'Missing required fields in manifest: author, defaultLocale, frameworkVersion'
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should have an error when the defaultLocale is invalid' do
|
38
38
|
manifest = { 'defaultLocale' => 'pt-BR-1' }
|
39
39
|
manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
|
40
|
-
package = mock('Package', :files => [manifest_file])
|
40
|
+
package = mock('Package', :files => [manifest_file], :has_location? => true)
|
41
41
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
42
42
|
|
43
43
|
locale_error = errors.find { |e| e.to_s =~ /default locale/ }
|
@@ -48,7 +48,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
48
48
|
manifest = { 'defaultLocale' => 'pt' }
|
49
49
|
manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
|
50
50
|
translation_files = mock('AppFile', :relative_path => 'translations/en.json')
|
51
|
-
package = mock('Package', :files => [manifest_file], :translation_files => [translation_files])
|
51
|
+
package = mock('Package', :files => [manifest_file], :has_location? => true, :translation_files => [translation_files])
|
52
52
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
53
53
|
|
54
54
|
locale_error = errors.find { |e| e.to_s =~ /Missing translation file/ }
|
@@ -58,7 +58,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
58
58
|
it 'should have an error when the location is invalid' do
|
59
59
|
manifest = { 'location' => ['ticket_sidebar', 'a_invalid_location'] }
|
60
60
|
manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
|
61
|
-
package = mock('Package', :files => [manifest_file])
|
61
|
+
package = mock('Package', :files => [manifest_file], :has_location? => true)
|
62
62
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
63
63
|
|
64
64
|
locations_error = errors.find { |e| e.to_s =~ /invalid location/ }
|
@@ -68,7 +68,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
68
68
|
it 'should have an error when there are duplicate locations' do
|
69
69
|
manifest = { 'location' => ['ticket_sidebar', 'ticket_sidebar'] }
|
70
70
|
manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
|
71
|
-
package = mock('Package', :files => [manifest_file])
|
71
|
+
package = mock('Package', :files => [manifest_file], :has_location? => true)
|
72
72
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
73
73
|
|
74
74
|
locations_error = errors.find { |e| e.to_s =~ /duplicate/ }
|
@@ -78,7 +78,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
78
78
|
it 'should have an error when the version is not supported' do
|
79
79
|
manifest = { 'frameworkVersion' => '0.7' }
|
80
80
|
manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
|
81
|
-
package = mock('Package', :files => [manifest_file])
|
81
|
+
package = mock('Package', :files => [manifest_file], :has_location? => true)
|
82
82
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
83
83
|
|
84
84
|
version_error = errors.find { |e| e.to_s =~ /not a valid framework version/ }
|
@@ -95,7 +95,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
95
95
|
}
|
96
96
|
|
97
97
|
manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
|
98
|
-
package = mock('Package', :files => [manifest_file])
|
98
|
+
package = mock('Package', :files => [manifest_file], :has_location? => true)
|
99
99
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
100
100
|
|
101
101
|
hidden_params_error = errors.find { |e| e.to_s =~ /set to hidden and cannot be required/ }
|
@@ -104,7 +104,7 @@ describe ZendeskAppsSupport::Validations::Manifest do
|
|
104
104
|
|
105
105
|
it 'should have an error when manifest is not a valid json' do
|
106
106
|
manifest = mock('AppFile', :relative_path => 'manifest.json', :read => "}")
|
107
|
-
package = mock('Package', :files => [manifest])
|
107
|
+
package = mock('Package', :files => [manifest], :has_location? => true)
|
108
108
|
errors = ZendeskAppsSupport::Validations::Manifest.call(package)
|
109
109
|
|
110
110
|
errors.first().to_s.should =~ /^manifest is not proper JSON/
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'zendesk_apps_support'
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe ZendeskAppsSupport::Validations::Requirements do
|
5
|
+
|
6
|
+
it 'creates an error when the file is not valid JSON' do
|
7
|
+
requirements = mock('AppFile', :relative_path => 'requirements.json', :read => "{")
|
8
|
+
package = mock('Package', :files => [requirements])
|
9
|
+
errors = ZendeskAppsSupport::Validations::Requirements.call(package)
|
10
|
+
|
11
|
+
errors.first.key.should == :requirements_not_json
|
12
|
+
end
|
13
|
+
|
14
|
+
it "creates no error when the file is valid JSON" do
|
15
|
+
requirements = mock('AppFile', :relative_path => 'requirements.json',
|
16
|
+
:read => read_fixture_file('requirements.json'))
|
17
|
+
package = mock('Package', :files => [requirements])
|
18
|
+
errors = ZendeskAppsSupport::Validations::Requirements.call(package)
|
19
|
+
|
20
|
+
expect(errors).to be_empty
|
21
|
+
end
|
22
|
+
|
23
|
+
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: 1.
|
4
|
+
version: 1.12.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: 2014-
|
14
|
+
date: 2014-02-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: i18n
|
@@ -144,6 +144,8 @@ files:
|
|
144
144
|
- lib/zendesk_apps_support/sass_functions.rb
|
145
145
|
- lib/zendesk_apps_support/stylesheet_compiler.rb
|
146
146
|
- lib/zendesk_apps_support/validations/manifest.rb
|
147
|
+
- lib/zendesk_apps_support/validations/package.rb
|
148
|
+
- lib/zendesk_apps_support/validations/requirements.rb
|
147
149
|
- lib/zendesk_apps_support/validations/source.rb
|
148
150
|
- lib/zendesk_apps_support/validations/stylesheets.rb
|
149
151
|
- lib/zendesk_apps_support/validations/templates.rb
|
@@ -166,10 +168,13 @@ files:
|
|
166
168
|
- spec/build_translation_spec.rb
|
167
169
|
- spec/i18n_spec.rb
|
168
170
|
- spec/package_spec.rb
|
171
|
+
- spec/spec_helper.rb
|
169
172
|
- spec/validations/fixture/invalid_en.json
|
173
|
+
- spec/validations/fixture/requirements.json
|
170
174
|
- spec/validations/fixture/valid_en.json
|
171
175
|
- spec/validations/jshint_error_spec.rb
|
172
176
|
- spec/validations/manifest_spec.rb
|
177
|
+
- spec/validations/requirements_spec.rb
|
173
178
|
- spec/validations/source_spec.rb
|
174
179
|
- spec/validations/stylesheets_spec.rb
|
175
180
|
- spec/validations/templates_spec.rb
|
@@ -212,10 +217,13 @@ test_files:
|
|
212
217
|
- spec/build_translation_spec.rb
|
213
218
|
- spec/i18n_spec.rb
|
214
219
|
- spec/package_spec.rb
|
220
|
+
- spec/spec_helper.rb
|
215
221
|
- spec/validations/fixture/invalid_en.json
|
222
|
+
- spec/validations/fixture/requirements.json
|
216
223
|
- spec/validations/fixture/valid_en.json
|
217
224
|
- spec/validations/jshint_error_spec.rb
|
218
225
|
- spec/validations/manifest_spec.rb
|
226
|
+
- spec/validations/requirements_spec.rb
|
219
227
|
- spec/validations/source_spec.rb
|
220
228
|
- spec/validations/stylesheets_spec.rb
|
221
229
|
- spec/validations/templates_spec.rb
|