alb-test 1.1.1 → 10.1.15

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
  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: ''