my_api_client 0.17.0 → 0.21.0

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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +32 -158
  3. data/.gem_comet.yml +13 -2
  4. data/.github/dependabot.yml +32 -0
  5. data/.rubocop.yml +1 -1
  6. data/.rubocop_todo.yml +22 -12
  7. data/CHANGELOG.md +61 -74
  8. data/Gemfile +0 -3
  9. data/Gemfile.lock +79 -61
  10. data/README.jp.md +71 -7
  11. data/gemfiles/rails_5.0.gemfile +1 -0
  12. data/gemfiles/rails_5.1.gemfile +1 -0
  13. data/gemfiles/rails_5.2.gemfile +1 -0
  14. data/gemfiles/rails_6.0.gemfile +1 -0
  15. data/gemfiles/{rails_4.2.gemfile → rails_6.1.gemfile} +1 -1
  16. data/lib/generators/rails/USAGE +1 -1
  17. data/lib/generators/rails/api_client_generator.rb +6 -0
  18. data/lib/generators/rails/templates/api_client.rb.erb +1 -1
  19. data/lib/generators/rspec/USAGE +1 -1
  20. data/lib/generators/rspec/api_client_generator.rb +6 -0
  21. data/lib/generators/rspec/templates/api_client_spec.rb.erb +1 -1
  22. data/lib/my_api_client/base.rb +2 -9
  23. data/lib/my_api_client/integrations/bugsnag.rb +1 -1
  24. data/lib/my_api_client/params/params.rb +1 -3
  25. data/lib/my_api_client/request.rb +1 -1
  26. data/lib/my_api_client/rspec/matchers/be_handled_as_an_error.rb +3 -3
  27. data/lib/my_api_client/rspec/matchers/request_to.rb +1 -1
  28. data/lib/my_api_client/rspec/stub.rb +40 -15
  29. data/lib/my_api_client/version.rb +1 -1
  30. data/my_api/.ruby-version +1 -1
  31. data/my_api/Gemfile +3 -0
  32. data/my_api/Gemfile.lock +112 -105
  33. data/my_api/app/controllers/pagination_controller.rb +2 -2
  34. data/my_api/public/index.html +2 -2
  35. data/my_api_client.gemspec +3 -3
  36. data/rails_app/rails_5.2/Gemfile +0 -1
  37. data/rails_app/rails_5.2/Gemfile.lock +73 -64
  38. data/rails_app/rails_5.2/config/environments/production.rb +1 -1
  39. data/rails_app/rails_6.0/Gemfile.lock +87 -77
  40. data/rails_app/rails_6.0/config/environments/production.rb +1 -1
  41. data/rails_app/rails_6.1/.gitattributes +8 -0
  42. data/rails_app/rails_6.1/.gitignore +28 -0
  43. data/rails_app/rails_6.1/.rspec +3 -0
  44. data/rails_app/rails_6.1/Gemfile +17 -0
  45. data/rails_app/rails_6.1/Gemfile.lock +203 -0
  46. data/rails_app/rails_6.1/README.md +24 -0
  47. data/rails_app/rails_6.1/Rakefile +6 -0
  48. data/rails_app/rails_6.1/app/controllers/application_controller.rb +4 -0
  49. data/rails_app/rails_6.1/app/controllers/concerns/.keep +0 -0
  50. data/rails_app/rails_6.1/app/javascript/.keep +0 -0
  51. data/rails_app/rails_6.1/app/models/application_record.rb +5 -0
  52. data/rails_app/rails_6.1/app/models/concerns/.keep +0 -0
  53. data/rails_app/rails_6.1/bin/bundle +114 -0
  54. data/rails_app/rails_6.1/bin/rails +4 -0
  55. data/rails_app/rails_6.1/bin/rake +4 -0
  56. data/rails_app/rails_6.1/bin/setup +33 -0
  57. data/rails_app/rails_6.1/config.ru +6 -0
  58. data/rails_app/rails_6.1/config/application.rb +42 -0
  59. data/rails_app/rails_6.1/config/boot.rb +5 -0
  60. data/rails_app/rails_6.1/config/credentials.yml.enc +1 -0
  61. data/rails_app/rails_6.1/config/database.yml +25 -0
  62. data/rails_app/rails_6.1/config/environment.rb +7 -0
  63. data/rails_app/rails_6.1/config/environments/development.rb +59 -0
  64. data/rails_app/rails_6.1/config/environments/production.rb +97 -0
  65. data/rails_app/rails_6.1/config/environments/test.rb +51 -0
  66. data/rails_app/rails_6.1/config/initializers/application_controller_renderer.rb +9 -0
  67. data/rails_app/rails_6.1/config/initializers/backtrace_silencers.rb +10 -0
  68. data/rails_app/rails_6.1/config/initializers/cors.rb +17 -0
  69. data/rails_app/rails_6.1/config/initializers/filter_parameter_logging.rb +8 -0
  70. data/rails_app/rails_6.1/config/initializers/inflections.rb +17 -0
  71. data/rails_app/rails_6.1/config/initializers/mime_types.rb +5 -0
  72. data/rails_app/rails_6.1/config/initializers/wrap_parameters.rb +16 -0
  73. data/rails_app/rails_6.1/config/locales/en.yml +33 -0
  74. data/rails_app/rails_6.1/config/routes.rb +5 -0
  75. data/rails_app/rails_6.1/db/seeds.rb +8 -0
  76. data/rails_app/rails_6.1/lib/tasks/.keep +0 -0
  77. data/rails_app/rails_6.1/public/robots.txt +1 -0
  78. data/rails_app/rails_6.1/spec/rails_helper.rb +14 -0
  79. data/rails_app/rails_6.1/spec/spec_helper.rb +13 -0
  80. data/rails_app/rails_6.1/tmp/.keep +0 -0
  81. data/rails_app/rails_6.1/tmp/pids/.keep +0 -0
  82. data/rails_app/rails_6.1/vendor/.keep +0 -0
  83. metadata +52 -11
  84. data/.dependabot/config.yml +0 -34
  85. data/.rubocop_challenge.yml +0 -5
@@ -44,7 +44,7 @@ RSpec.describe <%= "#{class_name}ApiClient" %>, <%= type_metatag(:api_client) %>
44
44
 
45
45
  it do
46
46
  expect { api_request }
47
- .to request_to(:<%= http_method %>, 'https://example.com/<%= pathname %>')
47
+ .to request_to(:<%= http_method %>, '<%= options[:endpoint] %>/<%= pathname %>')
48
48
  <% if http_method == 'get' -%>
49
49
  .with(headers: headers, query: {})
50
50
  <% else -%>
@@ -8,15 +8,8 @@ module MyApiClient
8
8
  include MyApiClient::Exceptions
9
9
  include MyApiClient::Request
10
10
 
11
- if ActiveSupport::VERSION::STRING >= '5.2.0'
12
- class_attribute :logger, instance_writer: false, default: ::Logger.new($stdout)
13
- class_attribute :error_handlers, instance_writer: false, default: []
14
- else
15
- class_attribute :logger
16
- class_attribute :error_handlers
17
- self.logger = ::Logger.new($stdout)
18
- self.error_handlers = []
19
- end
11
+ class_attribute :logger, instance_writer: false, default: ::Logger.new($stdout)
12
+ class_attribute :error_handlers, instance_writer: false, default: []
20
13
 
21
14
  include MyApiClient::DefaultErrorHandlers
22
15
 
@@ -11,7 +11,7 @@ module MyApiClient
11
11
 
12
12
  Bugsnag.leave_breadcrumb(
13
13
  "#{self.class.name} occurred",
14
- metadata.each_with_object({}) { |(k, v), memo| memo[k] = v.inspect },
14
+ metadata.transform_values(&:inspect),
15
15
  Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE
16
16
  )
17
17
  end
@@ -40,9 +40,7 @@ module MyApiClient
40
40
  # @return [Hash] Metadata for bugsnag
41
41
  def request_metadata
42
42
  if request.present?
43
- request.metadata.each_with_object({}) do |(key, value), memo|
44
- memo[:"request_#{key}"] = value
45
- end
43
+ request.metadata.transform_keys { |key| :"request_#{key}" }
46
44
  else
47
45
  {}
48
46
  end
@@ -24,7 +24,7 @@ module MyApiClient
24
24
  # @return [Sawyer::Response]
25
25
  # Response instance.
26
26
  def _request_with_relative_uri(http_method, pathname, headers, query, body)
27
- query_strings = query.present? ? '?' + query&.to_query : ''
27
+ query_strings = query.present? ? "?#{query.to_query}" : ''
28
28
  uri = URI.join(File.join(endpoint, pathname), query_strings)
29
29
  _request_with_absolute_uri(http_method, uri, headers, body)
30
30
  end
@@ -30,17 +30,17 @@ RSpec::Matchers.define :be_handled_as_an_error do |expected_error_class|
30
30
  actual_error = handle_error(api_request)
31
31
  if actual_error.nil?
32
32
  "expected to be handled as #{expected_error_class.name}, " \
33
- 'but not to be handled'
33
+ 'but not to be handled'
34
34
  else
35
35
  "expected to be handled as #{expected_error_class.name}, " \
36
- "but it was handled as #{actual_error.class.name}"
36
+ "but it was handled as #{actual_error.class.name}"
37
37
  end
38
38
  end
39
39
 
40
40
  failure_message_when_negated do |api_request|
41
41
  actual_error = handle_error(api_request)
42
42
  'expected not to be handled as an error, ' \
43
- "but it was handled as #{actual_error.class.name}"
43
+ "but it was handled as #{actual_error.class.name}"
44
44
  end
45
45
 
46
46
  attr_reader :sawyer
@@ -50,7 +50,7 @@ RSpec::Matchers.define :request_to do |expected_method, expected_url|
50
50
  end
51
51
 
52
52
  def request_line(method, url, query = nil)
53
- url += '?' + query.to_query if query.present?
53
+ url += "?#{query.to_query}" if query.present?
54
54
  "#{method.upcase} #{url}"
55
55
  end
56
56
 
@@ -18,13 +18,17 @@ module MyApiClient
18
18
  # @example
19
19
  # stub_api_client_all(
20
20
  # ExampleApiClient,
21
+ # get_users: { # Returns an arbitrary pageable response
22
+ # pageable: [ { id: 1 }, { id: 2 }] # for `#pageable_get`.
23
+ # },
21
24
  # get_user: { response: { id: 1 } }, # Returns an arbitrary response.
22
25
  # post_users: { id: 1 }, # You can ommit `response` keyword.
23
26
  # patch_user: ->(params) { { id: params[:id] } }, # Returns calculated result as response.
24
27
  # put_user: { raise: MyApiClient::ClientError } # Raises an arbitrary error.
25
28
  # delete_user: {
26
29
  # raise: MyApiClient::ClientError,
27
- # response: { errors: [{ code: 10 }] }, # You can stub response with exception.
30
+ # response: { errors: [{ code: 10 }] }, # You can stub response and statu code
31
+ # status_code: 429, # with an arbitrary error.
28
32
  # }
29
33
  # )
30
34
  # response = ExampleApiClient.new.get_user(id: 123)
@@ -46,13 +50,17 @@ module MyApiClient
46
50
  # @example
47
51
  # api_client = stub_api_client(
48
52
  # ExampleApiClient,
53
+ # get_users: { # Returns an arbitrary pageable response
54
+ # pageable: [ { id: 1 }, { id: 2 }] # for `#pageable_get`.
55
+ # },
49
56
  # get_user: { response: { id: 1 } }, # Returns an arbitrary response.
50
57
  # post_users: { id: 1 }, # You can ommit `response` keyword.
51
58
  # patch_user: ->(params) { { id: params[:id] } }, # Returns calculated result as response.
52
59
  # put_user: { raise: MyApiClient::ClientError } # Raises an arbitrary error.
53
60
  # delete_user: {
54
61
  # raise: MyApiClient::ClientError,
55
- # response: { errors: [{ code: 10 }] }, # You can stub response with exception.
62
+ # response: { errors: [{ code: 10 }] }, # You can stub response and status code
63
+ # status_code: 403, # with exception.
56
64
  # }
57
65
  # )
58
66
  # response = api_client.get_user(id: 123)
@@ -67,25 +75,40 @@ module MyApiClient
67
75
 
68
76
  private
69
77
 
70
- # rubocop:disable Metrics/AbcSize
71
78
  def stubbing(instance, action, options)
79
+ allow(instance).to receive(action) do |*request|
80
+ generate_stubbed_response(options, *request)
81
+ end
82
+ end
83
+
84
+ def generate_stubbed_response(options, *request) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
72
85
  case options
73
86
  when Proc
74
- allow(instance).to receive(action) { |*request| stub_as_resource(options.call(*request)) }
87
+ stub_as_resource(options.call(*request))
75
88
  when Hash
76
- if options[:raise].present?
77
- exception = process_raise_option(options[:raise], options[:response])
78
- allow(instance).to receive(action).and_raise(exception)
89
+ if options[:raise] # rubocop:disable Style/GuardClause
90
+ raise process_raise_option(options[:raise], options[:response], options[:status_code])
79
91
  elsif options[:response]
80
- allow(instance).to receive(action).and_return(stub_as_resource(options[:response]))
92
+ stub_as_resource(options[:response])
93
+ elsif options[:pageable].is_a?(Enumerable)
94
+ stub_as_pageable_resource(options[:pageable].each, *request)
81
95
  else
82
- allow(instance).to receive(action).and_return(stub_as_resource(options))
96
+ stub_as_resource(options)
83
97
  end
84
98
  else
85
- allow(instance).to receive(action).and_return(stub_as_resource(options))
99
+ stub_as_resource(options)
86
100
  end
87
101
  end
88
- # rubocop:enable Metrics/AbcSize
102
+
103
+ def stub_as_pageable_resource(pager, *request)
104
+ Enumerator.new do |y|
105
+ loop do
106
+ y << generate_stubbed_response(pager.next, *request)
107
+ rescue StopIteration
108
+ break
109
+ end
110
+ end.lazy
111
+ end
89
112
 
90
113
  # Provides a shorthand for `raise` option.
91
114
  # `MyApiClient::Error` requires `MyApiClient::Params::Params` instance on
@@ -93,12 +116,14 @@ module MyApiClient
93
116
  # If given a error instance, it will return raw value without processing.
94
117
  #
95
118
  # @param exception [Clsas, MyApiClient::Error] Processing target.
119
+ # @param response [Hash] describe_response_here
120
+ # @param status_code [Integer] describe_status_code_here
96
121
  # @return [MyApiClient::Error] Processed exception.
97
122
  # @raise [RuntimeError] Unsupported error class was set.
98
- def process_raise_option(exception, response = {})
123
+ def process_raise_option(exception, response, status_code)
99
124
  case exception
100
125
  when Class
101
- params = MyApiClient::Params::Params.new(nil, stub_as_response(response))
126
+ params = MyApiClient::Params::Params.new(nil, stub_as_response(response, status_code))
102
127
  if exception == MyApiClient::NetworkError
103
128
  exception.new(params, Net::OpenTimeout.new)
104
129
  else
@@ -113,10 +138,10 @@ module MyApiClient
113
138
  end
114
139
  end
115
140
 
116
- def stub_as_response(params)
141
+ def stub_as_response(params, status_code)
117
142
  instance_double(
118
143
  Sawyer::Response,
119
- status: 400,
144
+ status: status_code.presence || 400,
120
145
  headers: {},
121
146
  data: stub_as_resource(params),
122
147
  timing: 0.123
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MyApiClient
4
- VERSION = '0.17.0'
4
+ VERSION = '0.21.0'
5
5
  end
data/my_api/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.7
1
+ 2.7.2
data/my_api/Gemfile CHANGED
@@ -6,6 +6,9 @@ gem 'jets'
6
6
 
7
7
  gem 'dynomite'
8
8
 
9
+ # See: https://github.com/boltops-tools/jets/issues/523
10
+ gem 'nokogiri', '~> 1.12.2'
11
+
9
12
  # development and test groups are not bundled as part of the deployment
10
13
  group :development, :test do
11
14
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
data/my_api/Gemfile.lock CHANGED
@@ -1,43 +1,44 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- actionmailer (6.0.3.3)
5
- actionpack (= 6.0.3.3)
6
- actionview (= 6.0.3.3)
7
- activejob (= 6.0.3.3)
4
+ actionmailer (6.1.4)
5
+ actionpack (= 6.1.4)
6
+ actionview (= 6.1.4)
7
+ activejob (= 6.1.4)
8
+ activesupport (= 6.1.4)
8
9
  mail (~> 2.5, >= 2.5.4)
9
10
  rails-dom-testing (~> 2.0)
10
- actionpack (6.0.3.3)
11
- actionview (= 6.0.3.3)
12
- activesupport (= 6.0.3.3)
13
- rack (~> 2.0, >= 2.0.8)
11
+ actionpack (6.1.4)
12
+ actionview (= 6.1.4)
13
+ activesupport (= 6.1.4)
14
+ rack (~> 2.0, >= 2.0.9)
14
15
  rack-test (>= 0.6.3)
15
16
  rails-dom-testing (~> 2.0)
16
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
17
- actionview (6.0.3.3)
18
- activesupport (= 6.0.3.3)
18
+ actionview (6.1.4)
19
+ activesupport (= 6.1.4)
19
20
  builder (~> 3.1)
20
21
  erubi (~> 1.4)
21
22
  rails-dom-testing (~> 2.0)
22
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
23
- activejob (6.0.3.3)
24
- activesupport (= 6.0.3.3)
24
+ activejob (6.1.4)
25
+ activesupport (= 6.1.4)
25
26
  globalid (>= 0.3.6)
26
- activemodel (6.0.3.3)
27
- activesupport (= 6.0.3.3)
28
- activerecord (6.0.3.3)
29
- activemodel (= 6.0.3.3)
30
- activesupport (= 6.0.3.3)
31
- activesupport (6.0.3.3)
27
+ activemodel (6.1.4)
28
+ activesupport (= 6.1.4)
29
+ activerecord (6.1.4)
30
+ activemodel (= 6.1.4)
31
+ activesupport (= 6.1.4)
32
+ activesupport (6.1.4)
32
33
  concurrent-ruby (~> 1.0, >= 1.0.2)
33
- i18n (>= 0.7, < 2)
34
- minitest (~> 5.1)
35
- tzinfo (~> 1.1)
36
- zeitwerk (~> 2.2, >= 2.2.2)
37
- addressable (2.7.0)
34
+ i18n (>= 1.6, < 2)
35
+ minitest (>= 5.1)
36
+ tzinfo (~> 2.0)
37
+ zeitwerk (~> 2.3)
38
+ addressable (2.8.0)
38
39
  public_suffix (>= 2.0.2, < 5.0)
39
- aws-eventstream (1.1.0)
40
- aws-mfa-secure (0.4.2)
40
+ aws-eventstream (1.1.1)
41
+ aws-mfa-secure (0.4.3)
41
42
  activesupport
42
43
  aws-sdk-core
43
44
  aws_config
@@ -45,85 +46,87 @@ GEM
45
46
  rainbow
46
47
  thor
47
48
  zeitwerk
48
- aws-partitions (1.358.0)
49
- aws-sdk-apigateway (1.49.0)
50
- aws-sdk-core (~> 3, >= 3.99.0)
49
+ aws-partitions (1.479.0)
50
+ aws-sdk-apigateway (1.62.0)
51
+ aws-sdk-core (~> 3, >= 3.112.0)
51
52
  aws-sigv4 (~> 1.1)
52
- aws-sdk-cloudformation (1.41.0)
53
- aws-sdk-core (~> 3, >= 3.99.0)
53
+ aws-sdk-cloudformation (1.53.0)
54
+ aws-sdk-core (~> 3, >= 3.112.0)
54
55
  aws-sigv4 (~> 1.1)
55
- aws-sdk-cloudwatchlogs (1.34.0)
56
- aws-sdk-core (~> 3, >= 3.99.0)
56
+ aws-sdk-cloudwatchlogs (1.41.0)
57
+ aws-sdk-core (~> 3, >= 3.112.0)
57
58
  aws-sigv4 (~> 1.1)
58
- aws-sdk-core (3.104.4)
59
+ aws-sdk-core (3.117.0)
59
60
  aws-eventstream (~> 1, >= 1.0.2)
60
61
  aws-partitions (~> 1, >= 1.239.0)
61
62
  aws-sigv4 (~> 1.1)
62
63
  jmespath (~> 1.0)
63
- aws-sdk-dynamodb (1.51.0)
64
- aws-sdk-core (~> 3, >= 3.99.0)
64
+ aws-sdk-dynamodb (1.60.0)
65
+ aws-sdk-core (~> 3, >= 3.112.0)
65
66
  aws-sigv4 (~> 1.1)
66
- aws-sdk-kinesis (1.27.0)
67
- aws-sdk-core (~> 3, >= 3.99.0)
67
+ aws-sdk-kinesis (1.32.1)
68
+ aws-sdk-core (~> 3, >= 3.112.0)
68
69
  aws-sigv4 (~> 1.1)
69
- aws-sdk-kms (1.36.0)
70
- aws-sdk-core (~> 3, >= 3.99.0)
70
+ aws-sdk-kms (1.44.0)
71
+ aws-sdk-core (~> 3, >= 3.112.0)
71
72
  aws-sigv4 (~> 1.1)
72
- aws-sdk-lambda (1.48.0)
73
- aws-sdk-core (~> 3, >= 3.99.0)
73
+ aws-sdk-lambda (1.64.0)
74
+ aws-sdk-core (~> 3, >= 3.112.0)
74
75
  aws-sigv4 (~> 1.1)
75
- aws-sdk-s3 (1.78.0)
76
- aws-sdk-core (~> 3, >= 3.104.3)
76
+ aws-sdk-s3 (1.96.2)
77
+ aws-sdk-core (~> 3, >= 3.112.0)
77
78
  aws-sdk-kms (~> 1)
78
79
  aws-sigv4 (~> 1.1)
79
- aws-sdk-sns (1.29.0)
80
- aws-sdk-core (~> 3, >= 3.99.0)
80
+ aws-sdk-sns (1.42.0)
81
+ aws-sdk-core (~> 3, >= 3.112.0)
81
82
  aws-sigv4 (~> 1.1)
82
- aws-sdk-sqs (1.30.0)
83
- aws-sdk-core (~> 3, >= 3.99.0)
83
+ aws-sdk-sqs (1.40.0)
84
+ aws-sdk-core (~> 3, >= 3.112.0)
84
85
  aws-sigv4 (~> 1.1)
85
- aws-sdk-ssm (1.86.0)
86
- aws-sdk-core (~> 3, >= 3.99.0)
86
+ aws-sdk-ssm (1.112.0)
87
+ aws-sdk-core (~> 3, >= 3.112.0)
87
88
  aws-sigv4 (~> 1.1)
88
- aws-sigv4 (1.2.2)
89
+ aws-sigv4 (1.2.4)
89
90
  aws-eventstream (~> 1, >= 1.0.2)
90
91
  aws_config (0.1.0)
91
92
  builder (3.2.4)
92
93
  byebug (11.1.3)
93
- capybara (3.33.0)
94
+ capybara (3.35.3)
94
95
  addressable
95
96
  mini_mime (>= 0.1.3)
96
97
  nokogiri (~> 1.8)
97
98
  rack (>= 1.6.0)
98
99
  rack-test (>= 0.6.3)
99
- regexp_parser (~> 1.5)
100
+ regexp_parser (>= 1.5, < 3.0)
100
101
  xpath (~> 3.2)
102
+ cfn-status (0.4.3)
103
+ aws-sdk-cloudformation
101
104
  cfn_camelizer (0.4.9)
102
105
  activesupport
103
106
  memoist
104
107
  rainbow
105
- cfnresponse (0.4.0)
106
- concurrent-ruby (1.1.7)
108
+ cfn_response (0.2.0)
109
+ concurrent-ruby (1.1.9)
107
110
  crass (1.0.6)
108
- diff-lcs (1.3)
111
+ diff-lcs (1.4.4)
109
112
  dotenv (2.7.6)
110
113
  dynomite (1.2.6)
111
114
  activesupport
112
115
  aws-sdk-dynamodb
113
116
  rainbow
114
- erubi (1.9.0)
117
+ erubi (1.10.0)
115
118
  gems (1.2.0)
116
119
  globalid (0.4.2)
117
120
  activesupport (>= 4.2.0)
118
121
  hashie (4.1.0)
119
- i18n (1.8.5)
122
+ i18n (1.8.10)
120
123
  concurrent-ruby (~> 1.0)
121
- jets (2.3.17)
122
- actionmailer (~> 6.0.0)
123
- actionpack (~> 6.0.0)
124
- actionview (~> 6.0.0)
125
- activerecord (~> 6.0.0)
126
- activesupport (~> 6.0.0)
124
+ jets (3.0.11)
125
+ actionmailer (~> 6.1.0)
126
+ actionpack (~> 6.1.0)
127
+ actionview (~> 6.1.0)
128
+ activerecord (~> 6.1.0)
129
+ activesupport (~> 6.1.0)
127
130
  aws-mfa-secure (~> 0.4.0)
128
131
  aws-sdk-apigateway
129
132
  aws-sdk-cloudformation
@@ -135,50 +138,50 @@ GEM
135
138
  aws-sdk-sns
136
139
  aws-sdk-sqs
137
140
  aws-sdk-ssm
141
+ cfn-status
138
142
  cfn_camelizer (~> 0.4.6)
139
- cfnresponse
143
+ cfn_response
140
144
  dotenv
141
145
  gems
142
146
  hashie
143
- jets-gems
144
147
  jets-html-sanitizer
145
148
  kramdown
146
149
  memoist
147
- mimemagic
150
+ mini_mime
148
151
  rack
149
- railties (~> 6.0.0)
152
+ railties (~> 6.1.0)
150
153
  rainbow
151
154
  recursive-open-struct
155
+ serverlessgems (~> 0.1.4)
152
156
  shotgun
153
157
  text-table
154
158
  thor
155
159
  zeitwerk
156
- jets-gems (0.2.2)
157
- gems
158
160
  jets-html-sanitizer (1.0.4)
159
161
  loofah (~> 2.2, >= 2.2.2)
160
162
  jmespath (1.4.0)
161
- kramdown (2.3.0)
163
+ kramdown (2.3.1)
162
164
  rexml
163
165
  launchy (2.5.0)
164
166
  addressable (~> 2.7)
165
- loofah (2.7.0)
167
+ loofah (2.10.0)
166
168
  crass (~> 1.0.2)
167
169
  nokogiri (>= 1.5.9)
168
170
  mail (2.7.1)
169
171
  mini_mime (>= 0.1.1)
170
172
  memoist (0.16.2)
171
173
  method_source (1.0.0)
172
- mimemagic (0.3.5)
173
- mini_mime (1.0.2)
174
- mini_portile2 (2.4.0)
175
- minitest (5.14.2)
176
- nio4r (2.5.4)
177
- nokogiri (1.10.10)
178
- mini_portile2 (~> 2.4.0)
179
- public_suffix (4.0.5)
180
- puma (5.0.0)
174
+ mini_mime (1.1.0)
175
+ mini_portile2 (2.6.1)
176
+ minitest (5.14.4)
177
+ nio4r (2.5.7)
178
+ nokogiri (1.12.2)
179
+ mini_portile2 (~> 2.6.1)
180
+ racc (~> 1.4)
181
+ public_suffix (4.0.6)
182
+ puma (5.4.0)
181
183
  nio4r (~> 2.0)
184
+ racc (1.5.2)
182
185
  rack (2.2.3)
183
186
  rack-test (1.1.0)
184
187
  rack (>= 1.0, < 3)
@@ -187,42 +190,45 @@ GEM
187
190
  nokogiri (>= 1.6)
188
191
  rails-html-sanitizer (1.3.0)
189
192
  loofah (~> 2.3)
190
- railties (6.0.3.3)
191
- actionpack (= 6.0.3.3)
192
- activesupport (= 6.0.3.3)
193
+ railties (6.1.4)
194
+ actionpack (= 6.1.4)
195
+ activesupport (= 6.1.4)
193
196
  method_source
194
- rake (>= 0.8.7)
195
- thor (>= 0.20.3, < 2.0)
197
+ rake (>= 0.13)
198
+ thor (~> 1.0)
196
199
  rainbow (3.0.0)
197
- rake (13.0.1)
198
- recursive-open-struct (1.1.2)
199
- regexp_parser (1.7.1)
200
- rexml (3.2.4)
201
- rspec (3.9.0)
202
- rspec-core (~> 3.9.0)
203
- rspec-expectations (~> 3.9.0)
204
- rspec-mocks (~> 3.9.0)
205
- rspec-core (3.9.1)
206
- rspec-support (~> 3.9.1)
207
- rspec-expectations (3.9.1)
200
+ rake (13.0.6)
201
+ recursive-open-struct (1.1.3)
202
+ regexp_parser (2.0.3)
203
+ rexml (3.2.5)
204
+ rspec (3.10.0)
205
+ rspec-core (~> 3.10.0)
206
+ rspec-expectations (~> 3.10.0)
207
+ rspec-mocks (~> 3.10.0)
208
+ rspec-core (3.10.0)
209
+ rspec-support (~> 3.10.0)
210
+ rspec-expectations (3.10.0)
208
211
  diff-lcs (>= 1.2.0, < 2.0)
209
- rspec-support (~> 3.9.0)
210
- rspec-mocks (3.9.1)
212
+ rspec-support (~> 3.10.0)
213
+ rspec-mocks (3.10.0)
211
214
  diff-lcs (>= 1.2.0, < 2.0)
212
- rspec-support (~> 3.9.0)
213
- rspec-support (3.9.2)
215
+ rspec-support (~> 3.10.0)
216
+ rspec-support (3.10.0)
214
217
  rspec_junit_formatter (0.4.1)
215
218
  rspec-core (>= 2, < 4, != 2.12.0)
219
+ serverlessgems (0.1.4)
220
+ gems
221
+ memoist
222
+ zeitwerk
216
223
  shotgun (0.9.2)
217
224
  rack (>= 1.0)
218
225
  text-table (1.2.4)
219
- thor (1.0.1)
220
- thread_safe (0.3.6)
221
- tzinfo (1.2.7)
222
- thread_safe (~> 0.1)
226
+ thor (1.1.0)
227
+ tzinfo (2.0.4)
228
+ concurrent-ruby (~> 1.0)
223
229
  xpath (3.2.0)
224
230
  nokogiri (~> 1.8)
225
- zeitwerk (2.4.0)
231
+ zeitwerk (2.4.2)
226
232
 
227
233
  PLATFORMS
228
234
  ruby
@@ -233,6 +239,7 @@ DEPENDENCIES
233
239
  dynomite
234
240
  jets
235
241
  launchy
242
+ nokogiri (~> 1.12.2)
236
243
  puma
237
244
  rack
238
245
  rspec