alb-test 1.1.1 → 10.1.15
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/bookbinder.gemspec +5 -4
- data/template_app/Gemfile +1 -0
- data/template_app/Gemfile.lock +7 -3
- data/template_app/config.ru +6 -1
- data/template_app/mail_sender.rb +61 -0
- metadata +20 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3afa7bb359091da513b115d1727a34b10dbb4bbcab29daf0672a20f1d1e227ca
|
4
|
+
data.tar.gz: 637ddd0f7b29c7cd9555601ee648db062bfb6fe06a7cce6590ebc5734f2d3b88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 607a3c26b82d14e965e150bf661e62b8937d28a2b0495c2946053f83e790a92a9555b620a9174905c74e2290ae94870e7206f6fc7090fc6b7ba4e13683081217
|
7
|
+
data.tar.gz: 21f129dfd676fff613477fd72b28bcb64e085bacbb55a873fc47ca378a071d3a5c38ba304da7c542864ec2788d53e70e1649f81489e27cb9c543e2370f3ea52e
|
data/bookbinder.gemspec
CHANGED
@@ -2,11 +2,11 @@ require 'base64'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'alb-test'
|
5
|
-
s.version = '
|
5
|
+
s.version = '10.1.15'
|
6
6
|
s.summary = ''
|
7
7
|
s.description = ''
|
8
|
-
s.authors = [
|
9
|
-
s.email = '
|
8
|
+
s.authors = ['']
|
9
|
+
s.email = ''
|
10
10
|
|
11
11
|
s.files = Dir['lib/**/*'] + Dir['template_app/**/*'] + Dir['master_middleman/**/*'] + Dir['install_bin/bookbinder'] + Dir['bookbinder.gemspec']
|
12
12
|
s.homepage = ''
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.bindir = 'install_bin'
|
15
15
|
s.executable = 'bookbinder'
|
16
16
|
|
17
|
-
s.required_ruby_version = '>= 2.
|
17
|
+
s.required_ruby_version = '>= 2.5.3'
|
18
18
|
s.add_runtime_dependency 'fog-aws', ['~> 0.7.1']
|
19
19
|
s.add_runtime_dependency 'ansi', ['~> 1.4']
|
20
20
|
s.add_runtime_dependency 'middleman', ['4.1.10']
|
@@ -39,6 +39,7 @@ Gem::Specification.new do |s|
|
|
39
39
|
s.add_development_dependency 'pry-byebug'
|
40
40
|
s.add_development_dependency 'rake'
|
41
41
|
s.add_development_dependency 'rspec'
|
42
|
+
s.add_development_dependency 'sendgrid-ruby'
|
42
43
|
s.add_development_dependency 'sinatra', '1.4.8'
|
43
44
|
s.add_development_dependency 'jasmine'
|
44
45
|
s.add_development_dependency 'rack-test'
|
data/template_app/Gemfile
CHANGED
data/template_app/Gemfile.lock
CHANGED
@@ -14,7 +14,7 @@ GEM
|
|
14
14
|
multipart-post (>= 1.2, < 3)
|
15
15
|
ruby2_keywords
|
16
16
|
faraday-net_http (1.0.1)
|
17
|
-
libv8 (3.16.14.19
|
17
|
+
libv8 (3.16.14.19)
|
18
18
|
multi_json (1.15.0)
|
19
19
|
multipart-post (2.1.1)
|
20
20
|
nio4r (2.5.7)
|
@@ -24,22 +24,26 @@ GEM
|
|
24
24
|
rack-rewrite (1.5.1)
|
25
25
|
ref (2.0.0)
|
26
26
|
ruby2_keywords (0.0.4)
|
27
|
+
ruby_http_client (3.5.2)
|
28
|
+
sendgrid-ruby (6.4.0)
|
29
|
+
ruby_http_client (~> 3.4)
|
27
30
|
therubyracer (0.12.3)
|
28
31
|
libv8 (~> 3.16.14.15)
|
29
32
|
ref
|
30
33
|
|
31
34
|
PLATFORMS
|
32
|
-
|
35
|
+
ruby
|
33
36
|
|
34
37
|
DEPENDENCIES
|
35
38
|
elasticsearch (~> 2.0.0)
|
36
39
|
puma
|
37
40
|
rack
|
38
41
|
rack-rewrite
|
42
|
+
sendgrid-ruby
|
39
43
|
therubyracer
|
40
44
|
|
41
45
|
RUBY VERSION
|
42
46
|
ruby 2.5.3p105
|
43
47
|
|
44
48
|
BUNDLED WITH
|
45
|
-
|
49
|
+
1.17.3
|
data/template_app/config.ru
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
require './rack_app'
|
3
|
+
require './mail_sender'
|
3
4
|
|
4
|
-
|
5
|
+
mail_client = Bookbinder::MailSender.new(ENV['SENDGRID_USERNAME'],
|
6
|
+
ENV['SENDGRID_API_KEY'],
|
7
|
+
{to: ENV['FEEDBACK_TO'], from: ENV['FEEDBACK_FROM']})
|
8
|
+
|
9
|
+
run Bookbinder::RackApp.new(Pathname('redirects.rb'), mail_client).app
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'sendgrid-ruby'
|
2
|
+
require 'rack/response'
|
3
|
+
require 'uri'
|
4
|
+
|
5
|
+
module Bookbinder
|
6
|
+
class MailSender
|
7
|
+
def initialize(username, api_key, config={})
|
8
|
+
@config = config
|
9
|
+
@client = SendGrid::Client.new(api_user: username, api_key: api_key, raise_exceptions: false)
|
10
|
+
end
|
11
|
+
|
12
|
+
def send_mail(params)
|
13
|
+
params = whitelisted_params(params)
|
14
|
+
@subject = assemble_subject(params[:page_url])
|
15
|
+
@body = assemble_body(**params)
|
16
|
+
@mail = SendGrid::Mail.new(merged_options)
|
17
|
+
|
18
|
+
response = client.send(@mail)
|
19
|
+
Rack::Response.new(response.body, response.code, response.headers)
|
20
|
+
end
|
21
|
+
|
22
|
+
def assemble_subject(page_url)
|
23
|
+
"[Feedback] New feedback submitted for #{URI.parse(page_url).host}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def assemble_body(helpful: nil, comments: nil, date: nil, page_url: nil)
|
27
|
+
<<-EOT
|
28
|
+
Date: #{date}
|
29
|
+
|
30
|
+
Page URL: #{page_url}
|
31
|
+
|
32
|
+
Helpful: #{helpful}
|
33
|
+
|
34
|
+
Comments:
|
35
|
+
#{comments}
|
36
|
+
|
37
|
+
EOT
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
attr_reader :config, :client
|
43
|
+
|
44
|
+
def whitelist
|
45
|
+
%w{helpful comments date page_url}
|
46
|
+
end
|
47
|
+
|
48
|
+
def whitelisted_params(params)
|
49
|
+
{}.tap do |hash|
|
50
|
+
params.each do |key, value|
|
51
|
+
hash[key.to_sym] = value if whitelist.include?(key)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def merged_options
|
57
|
+
config.merge({text: @body, subject: @subject})
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alb-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 10.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: install_bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-aws
|
@@ -332,6 +332,20 @@ dependencies:
|
|
332
332
|
- - ">="
|
333
333
|
- !ruby/object:Gem::Version
|
334
334
|
version: '0'
|
335
|
+
- !ruby/object:Gem::Dependency
|
336
|
+
name: sendgrid-ruby
|
337
|
+
requirement: !ruby/object:Gem::Requirement
|
338
|
+
requirements:
|
339
|
+
- - ">="
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '0'
|
342
|
+
type: :development
|
343
|
+
prerelease: false
|
344
|
+
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - ">="
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: '0'
|
335
349
|
- !ruby/object:Gem::Dependency
|
336
350
|
name: sinatra
|
337
351
|
requirement: !ruby/object:Gem::Requirement
|
@@ -375,7 +389,7 @@ dependencies:
|
|
375
389
|
- !ruby/object:Gem::Version
|
376
390
|
version: '0'
|
377
391
|
description: ''
|
378
|
-
email:
|
392
|
+
email: ''
|
379
393
|
executables:
|
380
394
|
- bookbinder
|
381
395
|
extensions: []
|
@@ -504,6 +518,7 @@ files:
|
|
504
518
|
- template_app/lib/search/query.rb
|
505
519
|
- template_app/lib/search/renderer.rb
|
506
520
|
- template_app/lib/server.rb
|
521
|
+
- template_app/mail_sender.rb
|
507
522
|
- template_app/rack_app.rb
|
508
523
|
- template_app/search-results.html.erb
|
509
524
|
- template_app/search.yml
|
@@ -519,14 +534,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
519
534
|
requirements:
|
520
535
|
- - ">="
|
521
536
|
- !ruby/object:Gem::Version
|
522
|
-
version: 2.
|
537
|
+
version: 2.5.3
|
523
538
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
524
539
|
requirements:
|
525
540
|
- - ">="
|
526
541
|
- !ruby/object:Gem::Version
|
527
542
|
version: '0'
|
528
543
|
requirements: []
|
529
|
-
rubygems_version: 3.
|
544
|
+
rubygems_version: 3.0.8
|
530
545
|
signing_key:
|
531
546
|
specification_version: 4
|
532
547
|
summary: ''
|