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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb99ae0b895ea2f75c76a7422e9607b9af97b6cdc773da266c1b7c5ee874bec5
4
- data.tar.gz: 7dc7592592eaca54bedf4b2cf7375a3bc94de47d5de842246ba0d766ca7abf5a
3
+ metadata.gz: 3afa7bb359091da513b115d1727a34b10dbb4bbcab29daf0672a20f1d1e227ca
4
+ data.tar.gz: 637ddd0f7b29c7cd9555601ee648db062bfb6fe06a7cce6590ebc5734f2d3b88
5
5
  SHA512:
6
- metadata.gz: f3bd72e4cab8098fc75c23db1f11eb13e56eba87f627dd07d0ff4925bf98457e292b070d364e40cc55b451f3b3ce2581da098204365b0ee818e2d08624ab07c0
7
- data.tar.gz: 5df8cf0405d8a0ab18412e3f8928525e9e9f693215bb5aa663cfaeb9d240ced89d69c158a322e1dbf57d66a841eadaa3a885731ea81afa133eb2563d81c9ef6a
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 = '1.1.1'
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.3.3'
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
@@ -6,4 +6,5 @@ gem 'rack'
6
6
  gem 'rack-rewrite'
7
7
  gem 'puma'
8
8
  gem 'therubyracer'
9
+ gem 'sendgrid-ruby'
9
10
  gem 'elasticsearch', '~> 2.0.0'
@@ -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-x86_64-linux)
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
- x86_64-linux
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
- 2.2.15
49
+ 1.17.3
@@ -1,4 +1,9 @@
1
1
  require 'pathname'
2
2
  require './rack_app'
3
+ require './mail_sender'
3
4
 
4
- run Bookbinder::RackApp.new(Pathname('redirects.rb')).app
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: 1.1.1
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-04-07 00:00:00.000000000 Z
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.3.3
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.2.15
544
+ rubygems_version: 3.0.8
530
545
  signing_key:
531
546
  specification_version: 4
532
547
  summary: ''