station 0.0.107 → 0.0.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/nexmo-developer +7 -0
- data/lib/nexmo_developer/Gemfile +7 -8
- data/lib/nexmo_developer/Gemfile.lock +127 -124
- data/lib/nexmo_developer/app/controllers/static_controller.rb +0 -10
- data/lib/nexmo_developer/app/models/tutorial.rb +10 -12
- data/lib/nexmo_developer/app/models/tutorial/prerequisite.rb +3 -1
- data/lib/nexmo_developer/app/models/tutorial/task.rb +24 -11
- data/lib/nexmo_developer/app/services/translator/files_list_coordinator.rb +90 -0
- data/lib/nexmo_developer/app/views/admin/feedbacks/_steps.html.erb +1 -1
- data/lib/nexmo_developer/app/views/static/_products.html.erb +14 -11
- data/lib/nexmo_developer/app/views/static/landing.html.erb +8 -8
- data/lib/nexmo_developer/app/webpacker/javascript/volta/volta.js +1 -1
- data/lib/nexmo_developer/lib/tasks/smartling.rake +7 -0
- data/lib/nexmo_developer/version.rb +1 -1
- data/package.json +13 -13
- data/station.gemspec +5 -5
- data/yarn.lock +173 -150
- metadata +23 -28
- data/lib/nexmo_developer/app/views/slack/join.html.erb +0 -25
- data/lib/nexmo_developer/app/views/static/_community.html.erb +0 -24
- data/lib/nexmo_developer/app/views/static/_dotnet.html.erb +0 -26
- data/lib/nexmo_developer/app/views/static/_slack.html.erb +0 -2
- data/lib/nexmo_developer/app/views/static/_xwithy.html.erb +0 -33
- data/lib/nexmo_developer/app/views/static/podcast.html.erb +0 -40
@@ -116,16 +116,6 @@ class StaticController < ApplicationController
|
|
116
116
|
render 'robots.txt'
|
117
117
|
end
|
118
118
|
|
119
|
-
def podcast
|
120
|
-
# Get URL and split the / to retrieve the landing page name
|
121
|
-
yaml_name = request.fullpath.split('/')[1]
|
122
|
-
|
123
|
-
# Load the YAML for that particular page
|
124
|
-
@content = YAML.load_file("#{Rails.root}/config/landing_pages/#{yaml_name}.yml")
|
125
|
-
|
126
|
-
render layout: 'landing'
|
127
|
-
end
|
128
|
-
|
129
119
|
def team
|
130
120
|
@team ||= LoadConfig.load_file('config/team.yml')
|
131
121
|
@careers = Greenhouse.devrel_careers
|
@@ -84,20 +84,18 @@ class Tutorial
|
|
84
84
|
subtasks[current_task_index - 1]
|
85
85
|
end
|
86
86
|
|
87
|
+
def tasks
|
88
|
+
@tasks ||= (yaml['tasks'] || []).map do |t|
|
89
|
+
Task.make_from(
|
90
|
+
name: t,
|
91
|
+
code_language: code_language,
|
92
|
+
current_step: current_step
|
93
|
+
)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
87
97
|
def subtasks
|
88
98
|
@subtasks ||= begin
|
89
|
-
tasks = []
|
90
|
-
|
91
|
-
(yaml['tasks'] || []).map do |t|
|
92
|
-
tasks.push(
|
93
|
-
Task.make_from(
|
94
|
-
name: t,
|
95
|
-
code_language: code_language,
|
96
|
-
current_step: current_step
|
97
|
-
)
|
98
|
-
)
|
99
|
-
end
|
100
|
-
|
101
99
|
tasks.unshift(prerequisite_task)
|
102
100
|
tasks.unshift(introduction_task)
|
103
101
|
tasks.push(conclusion_task)
|
@@ -1,11 +1,24 @@
|
|
1
1
|
class Tutorial::Task
|
2
|
-
attr_reader :name, :
|
2
|
+
attr_reader :name, :code_language, :current_step
|
3
3
|
|
4
|
-
|
4
|
+
delegate :yaml, :path, to: :@file_loader
|
5
|
+
|
6
|
+
def initialize(name:, current_step:, code_language: nil, title: nil, description: nil)
|
5
7
|
@name = name
|
6
8
|
@title = title
|
7
9
|
@description = description
|
10
|
+
@code_language = code_language
|
8
11
|
@current_step = current_step
|
12
|
+
@file_loader = load_file!
|
13
|
+
end
|
14
|
+
|
15
|
+
def load_file!
|
16
|
+
Tutorial::FileLoader.new(
|
17
|
+
root: Tutorial.task_content_path,
|
18
|
+
doc_name: @name,
|
19
|
+
code_language: @code_language,
|
20
|
+
format: 'md'
|
21
|
+
)
|
9
22
|
end
|
10
23
|
|
11
24
|
def active?
|
@@ -13,17 +26,9 @@ class Tutorial::Task
|
|
13
26
|
end
|
14
27
|
|
15
28
|
def self.make_from(name:, code_language:, current_step:)
|
16
|
-
file_loader = Tutorial::FileLoader.new(
|
17
|
-
root: Tutorial.task_content_path,
|
18
|
-
doc_name: name,
|
19
|
-
code_language: code_language,
|
20
|
-
format: 'md'
|
21
|
-
)
|
22
|
-
|
23
29
|
new(
|
24
30
|
name: name,
|
25
|
-
|
26
|
-
description: file_loader.yaml['description'],
|
31
|
+
code_language: code_language,
|
27
32
|
current_step: current_step
|
28
33
|
)
|
29
34
|
end
|
@@ -42,4 +47,12 @@ class Tutorial::Task
|
|
42
47
|
def hash
|
43
48
|
name.hash ^ title.hash ^ description.hash ^ current_step.hash
|
44
49
|
end
|
50
|
+
|
51
|
+
def title
|
52
|
+
@title || yaml['title']
|
53
|
+
end
|
54
|
+
|
55
|
+
def description
|
56
|
+
@description || yaml['description']
|
57
|
+
end
|
45
58
|
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
module Translator
|
2
|
+
class FilesListCoordinator
|
3
|
+
def self.call(attrs = {})
|
4
|
+
new(attrs).call
|
5
|
+
end
|
6
|
+
|
7
|
+
def initialize(days:)
|
8
|
+
@days = days
|
9
|
+
end
|
10
|
+
|
11
|
+
def call
|
12
|
+
process_files(files)
|
13
|
+
end
|
14
|
+
|
15
|
+
def files
|
16
|
+
@files ||= `(git fetch origin master:master) && (git log --since="#{@days} days" --name-only --oneline --diff-filter=ACM --pretty=format: master #{Rails.configuration.docs_base_path}/_documentation/en #{Rails.configuration.docs_base_path}/_tutorials/en #{Rails.configuration.docs_base_path}/_use_cases/en) | uniq | awk 'NF'`.split("\n")
|
17
|
+
end
|
18
|
+
|
19
|
+
def process_files(files)
|
20
|
+
files.each_with_object([]) do |file, list|
|
21
|
+
if file.include?('_documentation')
|
22
|
+
list << file if translatable_doc_file?(file)
|
23
|
+
elsif file.include?('_use_cases')
|
24
|
+
list << file if translatable_use_case_file?(file)
|
25
|
+
elsif file.include?('_tutorials')
|
26
|
+
list << file if translatable_tutorial_file?(file)
|
27
|
+
else
|
28
|
+
raise ArgumentError, "The following file did not match documentation, use cases or tutorials: #{file}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def translatable_doc_file?(file)
|
34
|
+
return nil unless File.exist?("#{Rails.configuration.docs_base_path}/#{file}")
|
35
|
+
|
36
|
+
allowed_products.any? do |product|
|
37
|
+
product['path'].include?(file.split('/')[2])
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def translatable_use_case_file?(file)
|
42
|
+
return nil unless File.exist?("#{Rails.configuration.docs_base_path}/#{file}")
|
43
|
+
|
44
|
+
allowed_products.any? do |product|
|
45
|
+
use_case_product(file).include?(product['path'])
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def use_case_product(file)
|
50
|
+
@use_case_product = YAML.safe_load(File.read("#{Rails.configuration.docs_base_path}/#{file}"))['products']
|
51
|
+
|
52
|
+
@use_case_product
|
53
|
+
end
|
54
|
+
|
55
|
+
def translatable_tutorial_file?(file)
|
56
|
+
return nil unless File.exist?("#{Rails.configuration.docs_base_path}/#{file}")
|
57
|
+
|
58
|
+
allowed_tutorial_files.any? do |tutorial|
|
59
|
+
tutorial.include?(file)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def allowed_products
|
64
|
+
@allowed_products ||= YAML.safe_load(File.read("#{Rails.configuration.docs_base_path}/config/products.yml"))['products'].select { |product| product['translate'] == true }
|
65
|
+
end
|
66
|
+
|
67
|
+
def allowed_tutorial_files
|
68
|
+
file_names = []
|
69
|
+
tutorials_list = []
|
70
|
+
|
71
|
+
TutorialList.all.each do |item|
|
72
|
+
allowed_products.each do |product|
|
73
|
+
tutorials_list << item if item.products.to_s.include?(product['path'])
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
tutorials_list.each do |item|
|
78
|
+
item.tutorial.prerequisites&.each do |prereq|
|
79
|
+
file_names << prereq.path
|
80
|
+
end
|
81
|
+
|
82
|
+
item.tutorial.tasks&.each do |task|
|
83
|
+
file_names << task.path
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
file_names.uniq
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -35,7 +35,7 @@
|
|
35
35
|
<% step['fields'].each_with_index do |field, field_index| %>
|
36
36
|
<div>
|
37
37
|
<b><%= field['label'] %>:</b>
|
38
|
-
<small><%= feedback.steps[step_index][field['name']
|
38
|
+
<small><%= feedback.steps[step_index].try(:[], field['name']) %></small>
|
39
39
|
</div>
|
40
40
|
<% end %>
|
41
41
|
<% end %>
|
@@ -1,31 +1,34 @@
|
|
1
1
|
<div class="Nxd-products-list">
|
2
2
|
<div class="Vlt-grid Vlt-grid--center Vlt-grid--margin-top2">
|
3
|
+
|
4
|
+
|
3
5
|
<div class="Vlt-col Vlt-col--1of3 Vlt-col--M-1of2">
|
4
6
|
<div class="Vlt-card Vlt-article--reverse Vlt-card--image Nxd-card--products">
|
5
7
|
<div class="Vlt-card__content">
|
6
8
|
<svg class="Vlt-icon Vlt-icon--larger Vlt-purple-dark"><use xlink:href="/symbol/volta-icons.svg#Vlt-icon-message" /></svg>
|
7
|
-
<div class="Nxd-card--product__subtitle"><small>
|
8
|
-
|
9
|
+
<div class="Nxd-card--product__subtitle"><small>PRODUCT AREA</small></div>
|
9
10
|
<h2>
|
10
11
|
<a href="/messaging/sms/overview">
|
11
|
-
|
12
|
+
PRODUCT NAME
|
12
13
|
</a>
|
13
14
|
</h2>
|
14
15
|
<nav>
|
15
|
-
<a href="
|
16
|
+
<a href="#"><svg class="Vlt-icon Vlt-icon--small Vlt-icon--text-bottom Vlt-gray-darker"
|
16
17
|
aria-hidden="true">
|
17
|
-
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-home" /></svg>
|
18
|
-
<a href="
|
18
|
+
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-home" /></svg>Product Topic 1</a>
|
19
|
+
<a href="#"><svg class="Vlt-icon Vlt-icon--small Vlt-icon--text-bottom Vlt-gray-darker"
|
19
20
|
aria-hidden="true">
|
20
|
-
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-books" /></svg>
|
21
|
-
<a href="
|
21
|
+
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-books" /></svg>Product Topic 2</a>
|
22
|
+
<a href="#"><svg class="Vlt-icon Vlt-icon--small Vlt-icon--text-bottom Vlt-gray-darker"
|
22
23
|
aria-hidden="true">
|
23
|
-
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-code" /></svg>
|
24
|
-
<a href="
|
24
|
+
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-code" /></svg>Product Topic 3</a>
|
25
|
+
<a href="#"><svg class="Vlt-icon Vlt-icon--small Vlt-icon--text-bottom Vlt-gray-darker"
|
25
26
|
aria-hidden="true">
|
26
27
|
<use xlink:href="/symbol/volta-icons.svg#Vlt-icon-mockup" /></svg>Tutorials</a>
|
27
28
|
<hr class="hr--short">
|
28
|
-
<a href="/
|
29
|
+
<a href="https://nexmo.github.io/station/How-To-Use#customization-options">
|
30
|
+
To modify this view, copy <a href="https://raw.githubusercontent.com/Nexmo/station/master/lib/nexmo_developer/app/views/static/_products.html.erb">the file</a> to your `custom/views/static` folder and customize the copied file.
|
31
|
+
</a>
|
29
32
|
</nav>
|
30
33
|
</div>
|
31
34
|
</div>
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
<div class="row">
|
4
4
|
<div class="center">
|
5
|
-
<h1 class="Vlt-title--margin-top2">
|
6
|
-
<p class="p-large">
|
5
|
+
<h1 class="Vlt-title--margin-top2">Default Entry Page</h1>
|
6
|
+
<p class="p-large">This is the default landing page for a developer portal running on Station.</p>
|
7
7
|
</div>
|
8
8
|
<div class="columns small-12">
|
9
9
|
<a name="products"></a>
|
@@ -17,10 +17,10 @@
|
|
17
17
|
<h2>
|
18
18
|
<a href="/tools">
|
19
19
|
<div><svg class="Vlt-icon Vlt-icon--large Vlt-purple-dark"><use xlink:href="/symbol/volta-icons.svg#Vlt-icon-design-tools"/></svg></div>
|
20
|
-
|
20
|
+
Featured Topic 1
|
21
21
|
</a>
|
22
22
|
</h2>
|
23
|
-
<p>
|
23
|
+
<p>You can choose to highlight an area of your portal on the landing page.</p>
|
24
24
|
</div>
|
25
25
|
</div>
|
26
26
|
<div class="Vlt-col Vlt-col--M-1of2">
|
@@ -28,10 +28,10 @@
|
|
28
28
|
<h2>
|
29
29
|
<a href="/community">
|
30
30
|
<div><svg class="Vlt-icon Vlt-icon--large Vlt-purple-dark"><use xlink:href="/symbol/volta-icons.svg#Vlt-icon-group"/></svg></div>
|
31
|
-
|
31
|
+
Featured Topic 2
|
32
32
|
</a>
|
33
33
|
</h2>
|
34
|
-
<p>
|
34
|
+
<p>You can highlight more than one area.</p>
|
35
35
|
</div>
|
36
36
|
</div>
|
37
37
|
</div>
|
@@ -39,8 +39,8 @@
|
|
39
39
|
<hr class="hr--tall">
|
40
40
|
|
41
41
|
<div class="center">
|
42
|
-
<h3>
|
43
|
-
<p class="p-large">
|
42
|
+
<h3>Modifying This Content</h3>
|
43
|
+
<p class="p-large">To modify this content you can copy <a href="https://raw.githubusercontent.com/Nexmo/station/master/lib/nexmo_developer/app/views/static/landing.html.erb">this file</a> to the `custom/views/static` folder in your documentation folder and modify that copy. More detailed instructions to create your own landing page can be found on the <a href="https://nexmo.github.io/station/How-To-Use#customization-options">Station documentation</a>.</p>
|
44
44
|
</div>
|
45
45
|
</div>
|
46
46
|
</div>
|
@@ -1455,7 +1455,7 @@ Volta.tab = function () {
|
|
1455
1455
|
|
1456
1456
|
this._activeLink.setAttribute('tabindex', '0');
|
1457
1457
|
this._activeLink.setAttribute('aria-selected', 'true');
|
1458
|
-
|
1458
|
+
this._activeLink.focus({ preventScroll: true });
|
1459
1459
|
if (this._activePanel) {
|
1460
1460
|
this._activePanel.removeAttribute('hidden');
|
1461
1461
|
}
|
@@ -49,6 +49,13 @@ namespace :smartling do
|
|
49
49
|
puts 'Done!'
|
50
50
|
end
|
51
51
|
|
52
|
+
desc 'Create list of changed documentation files within a given number of days'
|
53
|
+
task :check_docs_changes, %i[days] => [:environment] do |_, args|
|
54
|
+
files = Translator::FilesListCoordinator.new(days: args[:days]).call
|
55
|
+
|
56
|
+
puts files
|
57
|
+
end
|
58
|
+
|
52
59
|
desc 'Upload recently modified docs to Smartling for translation'
|
53
60
|
task :upload, %i[paths frequency] => [:environment] do |_, args|
|
54
61
|
# RAILS_ENV=production RAILS_LOG_TO_STDOUT=1 be nexmo-developer --docs=`pwd` --rake-smartling-upload 15 _documentation/en/messages/test.md _documentation/en/messages/external-accounts/overview.md
|
data/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"dependencies": {
|
3
3
|
"@babel/core": "^7.12.10",
|
4
4
|
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
5
|
-
"@babel/plugin-proposal-decorators": "^7.12.
|
5
|
+
"@babel/plugin-proposal-decorators": "^7.12.12",
|
6
6
|
"@babel/plugin-proposal-export-namespace-from": "^7.12.1",
|
7
7
|
"@babel/plugin-proposal-function-sent": "^7.12.1",
|
8
8
|
"@babel/plugin-proposal-json-strings": "^7.12.1",
|
@@ -11,11 +11,11 @@
|
|
11
11
|
"@babel/plugin-proposal-throw-expressions": "^7.12.1",
|
12
12
|
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
|
13
13
|
"@babel/plugin-syntax-import-meta": "^7.10.4",
|
14
|
-
"@babel/preset-env": "^7.12.
|
15
|
-
"@rails/ujs": "^6.1.
|
14
|
+
"@babel/preset-env": "^7.12.11",
|
15
|
+
"@rails/ujs": "^6.1.1",
|
16
16
|
"@rails/webpacker": "^5.2.1",
|
17
17
|
"algoliasearch": "^4.8.3",
|
18
|
-
"@vonagevolta/volta2": "^0.1.
|
18
|
+
"@vonagevolta/volta2": "^0.1.6",
|
19
19
|
"autoprefixer": "^9.8.6",
|
20
20
|
"babel-loader": "^8.2.2",
|
21
21
|
"babel-preset-babili": "^0.1.4",
|
@@ -28,10 +28,10 @@
|
|
28
28
|
"file-loader": "^6.2.0",
|
29
29
|
"foundation-sites": "^6.6.3",
|
30
30
|
"glob": "^7.1.2",
|
31
|
-
"gsap": "^3.
|
31
|
+
"gsap": "^3.6.0",
|
32
32
|
"https-proxy-agent": "^5.0.0",
|
33
33
|
"jquery": "^3.5.0",
|
34
|
-
"js-yaml": "
|
34
|
+
"js-yaml": "4.0.0",
|
35
35
|
"jsrsasign": "^10.1.4",
|
36
36
|
"kind-of": "^6.0.3",
|
37
37
|
"lodash": "^4.17.20",
|
@@ -46,16 +46,16 @@
|
|
46
46
|
"puppeteer": "^5.5.0",
|
47
47
|
"rails-erb-loader": "^5.1.0",
|
48
48
|
"resolve-url-loader": "^3.1.2",
|
49
|
-
"sass-loader": "^10.1.
|
49
|
+
"sass-loader": "^10.1.1",
|
50
50
|
"serialize-javascript": "^5.0.1",
|
51
51
|
"sha1-file": "^1.0.0",
|
52
52
|
"style-loader": "^2.0.0",
|
53
53
|
"vue": "^2.6.12",
|
54
|
-
"vue-loader": "^15.9.
|
54
|
+
"vue-loader": "^15.9.6",
|
55
55
|
"vue-template-compiler": "^2.6.12",
|
56
56
|
"webpack": "^4.44.2",
|
57
57
|
"webpack-manifest-plugin": "^3.0.0",
|
58
|
-
"webpack-merge": "^5.7.
|
58
|
+
"webpack-merge": "^5.7.3",
|
59
59
|
"webpacker": "^4",
|
60
60
|
"websocket-extensions": "^0.1.4",
|
61
61
|
"whatwg-fetch": "^3.5.0"
|
@@ -71,11 +71,11 @@
|
|
71
71
|
"marked": "^0.7.0"
|
72
72
|
},
|
73
73
|
"devDependencies": {
|
74
|
-
"@vue/test-utils": "1.1.
|
74
|
+
"@vue/test-utils": "1.1.2",
|
75
75
|
"alex": "^9.1.0",
|
76
76
|
"babel-core": "^7.0.0-bridge.0",
|
77
77
|
"babel-jest": "^26.6.3",
|
78
|
-
"eslint": "^7.
|
78
|
+
"eslint": "^7.17.0",
|
79
79
|
"eslint-config-standard": "^16.0.2",
|
80
80
|
"eslint-plugin-import": "^2.22.1",
|
81
81
|
"eslint-plugin-node": "^11.1.0",
|
@@ -86,8 +86,8 @@
|
|
86
86
|
"jest": "^26.6.3",
|
87
87
|
"node-fetch": "^2.6.1",
|
88
88
|
"vue-jest": "^3.0.7",
|
89
|
-
"webpack-bundle-analyzer": "^4.
|
90
|
-
"webpack-dev-server": "^3.11.
|
89
|
+
"webpack-bundle-analyzer": "^4.3.0",
|
90
|
+
"webpack-dev-server": "^3.11.1"
|
91
91
|
},
|
92
92
|
"version": "1.1.0",
|
93
93
|
"engines": {
|
data/station.gemspec
CHANGED
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.add_runtime_dependency('rails', '~> 6.0')
|
41
41
|
spec.add_runtime_dependency('bootsnap', '~> 1.4')
|
42
42
|
spec.add_runtime_dependency('nexmo-oas-renderer', '~> 2.4')
|
43
|
-
spec.add_runtime_dependency('nexmo_markdown_renderer', '~> 0.7.
|
43
|
+
spec.add_runtime_dependency('nexmo_markdown_renderer', '~> 0.7.5')
|
44
44
|
spec.add_runtime_dependency('activesupport', '~> 6.0')
|
45
45
|
spec.add_runtime_dependency('bugsnag', '~> 6.13')
|
46
46
|
spec.add_runtime_dependency('railties', '~> 6.0')
|
@@ -75,12 +75,12 @@ Gem::Specification.new do |spec|
|
|
75
75
|
spec.add_runtime_dependency('uglifier', '4.2.0')
|
76
76
|
spec.add_runtime_dependency('jquery-rails', '4.4.0')
|
77
77
|
spec.add_runtime_dependency('jbuilder', '2.10.1')
|
78
|
-
spec.add_runtime_dependency('nokogiri', '1.
|
79
|
-
spec.add_runtime_dependency('ruby-progressbar', '1.
|
78
|
+
spec.add_runtime_dependency('nokogiri', '1.11.1')
|
79
|
+
spec.add_runtime_dependency('ruby-progressbar', '1.11.0')
|
80
80
|
spec.add_runtime_dependency('colorize', '0.8.1')
|
81
81
|
spec.add_runtime_dependency('neatjson', '0.9')
|
82
82
|
spec.add_runtime_dependency('slack-notifier', '2.3.2')
|
83
|
-
spec.add_runtime_dependency('autoprefixer-rails', '10.
|
83
|
+
spec.add_runtime_dependency('autoprefixer-rails', '10.2.0.0')
|
84
84
|
spec.add_runtime_dependency('titleize', '1.4.1')
|
85
85
|
spec.add_runtime_dependency('countries', '3.0.1')
|
86
86
|
spec.add_runtime_dependency('country_select', '4.0.0')
|
@@ -88,7 +88,7 @@ Gem::Specification.new do |spec|
|
|
88
88
|
spec.add_runtime_dependency('newrelic_rpm', '6.14.0')
|
89
89
|
spec.add_runtime_dependency('redis', '4.2.5')
|
90
90
|
|
91
|
-
spec.add_development_dependency('rubocop', '~> 1.
|
91
|
+
spec.add_development_dependency('rubocop', '~> 1.8.0')
|
92
92
|
spec.add_development_dependency('rubocop-rails', '~> 2.6')
|
93
93
|
|
94
94
|
spec.metadata = {
|