rails_spotlight 0.1.0 → 0.1.2

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: 52e5d7e1fba61276ede96f911afffadec04140d81c77096c4e79e695d4d25482
4
- data.tar.gz: 6e3fab91311760f4f37788b787e675040df48eabe187dfdb70307a8bd06130e4
3
+ metadata.gz: 4f1b6f06197af1c1897a968d29834f8d4903ad506f814761960020aa99120944
4
+ data.tar.gz: 2e71488c1baa2106f146ed9f825508c965f1d370ee2d8cbbdd8564d90a632a7f
5
5
  SHA512:
6
- metadata.gz: d1fe8120e70db0b364bceb63b1dbd2585fb7725209822bbc458533e1a1ab05abef3ede5fcb14652dc8a38b7b92a08e2a29029197e1d4b7981c78d95531effa03
7
- data.tar.gz: ac8ef6112a2f715932ed4c8c4328ff2c570235917b1e915ca978a1d136aded36916c59f49c835ac10e54b600e471c9842ec6acac735d3b9f37c3288950227a6a
6
+ metadata.gz: 6e914a9fc7318521403dc19c585935b79154398b747a60fb45eb7fc079ff9220a5e188cdb0a744da42214363497fccf97ad24d16c524dcea69a731d4057095ce
7
+ data.tar.gz: 17244e465089b317de22af0038d6f855eb132256110f67e2691c503d32e3a54c27f7e4faa3ca847655202555a865d3c1881aebd9a094816fd2b89c674a026671
data/.rubocop.yml CHANGED
@@ -1,7 +1,10 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.2
2
+ TargetRubyVersion: 2.0
3
3
  DefaultFormatter: progress
4
- SuggestExtensions: true
4
+ SuggestExtensions:
5
+ rubocop-rake: true
6
+ rubocop-rspec: true
7
+
5
8
  NewCops: enable
6
9
 
7
10
  Style/StringLiterals:
@@ -35,3 +38,6 @@ Layout/HashAlignment:
35
38
  EnforcedHashRocketStyle: table
36
39
  EnforcedColonStyle: table
37
40
  EnforcedLastArgumentHashStyle: always_inspect
41
+
42
+ Style/Documentation:
43
+ Enabled: false
data/Gemfile.lock CHANGED
@@ -1,19 +1,111 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_spotlight (0.1.0)
4
+ rails_spotlight (0.1.2)
5
+ meta_request (~> 0.7)
6
+ rack-contrib (>= 1.1, < 3)
7
+ railties (>= 3.0.0, < 7.1)
5
8
 
6
9
  GEM
7
10
  remote: https://rubygems.org/
8
11
  specs:
12
+ actionpack (7.0.4.3)
13
+ actionview (= 7.0.4.3)
14
+ activesupport (= 7.0.4.3)
15
+ rack (~> 2.0, >= 2.2.0)
16
+ rack-test (>= 0.6.3)
17
+ rails-dom-testing (~> 2.0)
18
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
19
+ actionview (7.0.4.3)
20
+ activesupport (= 7.0.4.3)
21
+ builder (~> 3.1)
22
+ erubi (~> 1.4)
23
+ rails-dom-testing (~> 2.0)
24
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
25
+ activesupport (7.0.4.3)
26
+ concurrent-ruby (~> 1.0, >= 1.0.2)
27
+ i18n (>= 1.6, < 2)
28
+ minitest (>= 5.1)
29
+ tzinfo (~> 2.0)
9
30
  ast (2.4.2)
31
+ awesome_print (1.9.2)
32
+ builder (3.2.4)
33
+ coderay (1.1.3)
34
+ concurrent-ruby (1.2.2)
35
+ crass (1.0.6)
10
36
  diff-lcs (1.5.0)
37
+ erubi (1.12.0)
38
+ ffi (1.15.5)
39
+ formatador (1.1.0)
40
+ guard (2.18.0)
41
+ formatador (>= 0.2.4)
42
+ listen (>= 2.7, < 4.0)
43
+ lumberjack (>= 1.0.12, < 2.0)
44
+ nenv (~> 0.1)
45
+ notiffany (~> 0.0)
46
+ pry (>= 0.13.0)
47
+ shellany (~> 0.0)
48
+ thor (>= 0.18.1)
49
+ guard-compat (1.2.1)
50
+ guard-rspec (4.7.3)
51
+ guard (~> 2.1)
52
+ guard-compat (~> 1.1)
53
+ rspec (>= 2.99.0, < 4.0)
54
+ guard-rubocop (1.5.0)
55
+ guard (~> 2.0)
56
+ rubocop (< 2.0)
57
+ i18n (1.12.0)
58
+ concurrent-ruby (~> 1.0)
11
59
  json (2.6.3)
60
+ listen (3.8.0)
61
+ rb-fsevent (~> 0.10, >= 0.10.3)
62
+ rb-inotify (~> 0.9, >= 0.9.10)
63
+ loofah (2.19.1)
64
+ crass (~> 1.0.2)
65
+ nokogiri (>= 1.5.9)
66
+ lumberjack (1.2.8)
67
+ meta_request (0.7.4)
68
+ rack-contrib (>= 1.1, < 3)
69
+ railties (>= 3.0.0, < 7.1)
70
+ method_source (1.0.0)
71
+ mini_portile2 (2.8.1)
72
+ minitest (5.18.0)
73
+ nenv (0.3.0)
74
+ nokogiri (1.14.2)
75
+ mini_portile2 (~> 2.8.0)
76
+ racc (~> 1.4)
77
+ notiffany (0.1.3)
78
+ nenv (~> 0.1)
79
+ shellany (~> 0.0)
12
80
  parallel (1.22.1)
13
81
  parser (3.2.1.1)
14
82
  ast (~> 2.4.1)
83
+ pry (0.14.2)
84
+ coderay (~> 1.1)
85
+ method_source (~> 1.0)
86
+ racc (1.6.2)
87
+ rack (2.2.6.4)
88
+ rack-contrib (2.3.0)
89
+ rack (~> 2.0)
90
+ rack-test (2.1.0)
91
+ rack (>= 1.3)
92
+ rails-dom-testing (2.0.3)
93
+ activesupport (>= 4.2.0)
94
+ nokogiri (>= 1.6)
95
+ rails-html-sanitizer (1.5.0)
96
+ loofah (~> 2.19, >= 2.19.1)
97
+ railties (7.0.4.3)
98
+ actionpack (= 7.0.4.3)
99
+ activesupport (= 7.0.4.3)
100
+ method_source
101
+ rake (>= 12.2)
102
+ thor (~> 1.0)
103
+ zeitwerk (~> 2.5)
15
104
  rainbow (3.1.1)
16
105
  rake (13.0.6)
106
+ rb-fsevent (0.11.2)
107
+ rb-inotify (0.10.1)
108
+ ffi (~> 1.0)
17
109
  regexp_parser (2.6.2)
18
110
  rexml (3.2.5)
19
111
  rspec (3.12.0)
@@ -42,12 +134,21 @@ GEM
42
134
  rubocop-ast (1.24.1)
43
135
  parser (>= 3.1.1.0)
44
136
  ruby-progressbar (1.11.0)
137
+ shellany (0.0.1)
138
+ thor (1.2.1)
139
+ tzinfo (2.0.6)
140
+ concurrent-ruby (~> 1.0)
45
141
  unicode-display_width (2.4.2)
142
+ zeitwerk (2.6.7)
46
143
 
47
144
  PLATFORMS
48
145
  ruby
49
146
 
50
147
  DEPENDENCIES
148
+ awesome_print (~> 1.6)
149
+ guard (~> 2.12)
150
+ guard-rspec (~> 4.5)
151
+ guard-rubocop (~> 1.2)
51
152
  rails_spotlight!
52
153
  rake (~> 13.0)
53
154
  rspec (~> 3.0)
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ guard :rspec, cmd: 'rspec' do
2
+ watch(%r{^lib/(.+).rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
3
+ watch(%r{^spec/(.+).rb$}) { |m| "spec/#{m[1]}.rb" }
4
+ watch('spec/spec_helper.rb') { 'spec' }
5
+ watch('Gemfile')
6
+ end
7
+
8
+ guard :rubocop, all_on_start: false, cli: ['--format', 'clang'] do
9
+ watch(/.+\.rb$/)
10
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
11
+ end
data/README.md CHANGED
@@ -17,3 +17,6 @@ The gem is available as open source under the terms of the [MIT License](https:/
17
17
  ## Code of Conduct
18
18
 
19
19
  Everyone interacting in the RailsSpotlight project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/pniemczyk/rails_spotlight/blob/master/CODE_OF_CONDUCT.md).
20
+
21
+
22
+ check https://github.com/alexrudall/ruby-openai
@@ -0,0 +1,93 @@
1
+ module RailsSpotlight
2
+ module Middlewares
3
+ module Handlers
4
+ class BaseActionHandler
5
+ IncorrectResponseContentType = Class.new(StandardError)
6
+ NotFound = Class.new(StandardError)
7
+ UnprocessableEntity = Class.new(StandardError)
8
+
9
+ def initialize(request_id, request, content_type)
10
+ @request_id = request_id
11
+ @request = request
12
+ @content_type = content_type
13
+ end
14
+
15
+ attr_reader :request_id, :request, :content_type
16
+
17
+ def call
18
+ execute
19
+ response
20
+ rescue NotFound => e
21
+ not_found_response(e.message)
22
+ rescue UnprocessableEntity => e
23
+ unprocessed_response(e.message)
24
+ rescue => e # rubocop:disable Style/RescueStandardError
25
+ internal_server_error_response(e.message)
26
+ end
27
+
28
+ protected
29
+
30
+ attr_writer :status, :headers
31
+
32
+ def headers
33
+ @headers ||= {}
34
+ end
35
+
36
+ def status
37
+ @status ||= 200
38
+ end
39
+
40
+ def execute
41
+ raise 'Not implemented yet'
42
+ end
43
+
44
+ def json_response_body
45
+ raise IncorrectResponseContentType, content_type
46
+ end
47
+
48
+ def text_response_body
49
+ raise IncorrectResponseContentType, content_type
50
+ end
51
+
52
+ def json_request_body
53
+ @json_request_body ||= JSON.parse(request.body.read)
54
+ rescue JSON::ParserError
55
+ raise 'Invalid JSON'
56
+ end
57
+
58
+ def internal_server_error_response(message)
59
+ response(500, message_to_body(message))
60
+ end
61
+
62
+ def unprocessed_response(message)
63
+ response(422, message_to_body(message))
64
+ end
65
+
66
+ def not_found_response(message)
67
+ response(404, message_to_body(message))
68
+ end
69
+
70
+ def message_to_body(message)
71
+ content_type == :json ? { message: message } : message
72
+ end
73
+
74
+ def response_headers(headers = {})
75
+ {
76
+ 'Content-Type' => content_type == :json ? 'application/json; charset=utf-8' : 'text/plain; charset=utf-8',
77
+ 'X-Rails-Spotlight' => '1.0.0',
78
+ 'X-Request-Id' => request_id
79
+ }.merge(headers)
80
+ end
81
+
82
+ def response(overridden_status = nil, overridden_body = nil)
83
+ body = if overridden_body.present?
84
+ content_type == :json ? overridden_body.to_json : overridden_body
85
+ else
86
+ content_type == :json ? json_response_body.to_json : text_response_body
87
+ end
88
+ [overridden_status.present? ? overridden_status : status, response_headers(headers), [body]]
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,41 @@
1
+ module RailsSpotlight
2
+ module Middlewares
3
+ module Handlers
4
+ class FileActionHandler < BaseActionHandler
5
+ def execute
6
+ raise NotFound, 'File not found' unless path_valid?
7
+
8
+ File.write(file_path, json_request_body.fetch('content')) if write_mode?
9
+ rescue => e # rubocop:disable Style/RescueStandardError
10
+ raise UnprocessableEntity, e.message
11
+ end
12
+
13
+ private
14
+
15
+ def text_response_body
16
+ File.read(file_path)
17
+ end
18
+
19
+ def json_response_body
20
+ { source: text_response_body }
21
+ end
22
+
23
+ def write_mode?
24
+ request_mode == 'write'
25
+ end
26
+
27
+ def request_mode
28
+ @request_mode ||= json_request_body.fetch('mode') { 'read' }
29
+ end
30
+
31
+ def path_valid?
32
+ file_path.to_s.include?(Rails.root.to_s) && File.exist?(file_path)
33
+ end
34
+
35
+ def file_path
36
+ @file_path ||= Rails.root.join(json_request_body.fetch('file'))
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,11 @@
1
+ module RailsSpotlight
2
+ module Middlewares
3
+ module Handlers
4
+ class NotFoundActionHandler < BaseActionHandler
5
+ def execute
6
+ raise NotFound, 'Not found'
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,37 @@
1
+ module RailsSpotlight
2
+ module Middlewares
3
+ module Handlers
4
+ class SqlActionHandler < BaseActionHandler
5
+ def execute
6
+ ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record', monotonic: true) do
7
+ ActiveSupport::ExecutionContext.set(rails_spotlight: request_id) do
8
+ self.result = ActiveRecord::Base.connection.exec_query(query)
9
+ end
10
+ end
11
+ end
12
+
13
+ private
14
+
15
+ attr_accessor :result
16
+
17
+ def json_response_body
18
+ { result: result, logs: logs }
19
+ end
20
+
21
+ def logger(_, started, finished, unique_id, payload)
22
+ logs << { time: started, end: finished, unique_id: unique_id }.merge(
23
+ payload.as_json(except: %i[connection method name filename line])
24
+ )
25
+ end
26
+
27
+ def logs
28
+ @logs ||= []
29
+ end
30
+
31
+ def query
32
+ @query ||= json_request_body.fetch('query')
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ module RailsSpotlight
2
+ module Middlewares
3
+ module Handlers
4
+ class VerifyActionHandler < BaseActionHandler
5
+ def execute; end
6
+
7
+ private
8
+
9
+ def text_response_body
10
+ "Rails Spotlight is working!\nRails version: #{Rails.version}\nRails environment: #{Rails.env}"
11
+ end
12
+
13
+ def json_response_body
14
+ {
15
+ params: request.params,
16
+ body: request.body.read,
17
+ content_type: request.content_type,
18
+ request_method: request.request_method,
19
+ version: request.get_header('HTTP_X_RAILS_SPOTLIGHT')
20
+ }
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,38 @@
1
+ require_relative 'handlers/base_action_handler'
2
+ require_relative 'handlers/file_action_handler'
3
+ require_relative 'handlers/sql_action_handler'
4
+ require_relative 'handlers/verify_action_handler'
5
+ require_relative 'handlers/not_found_action_handler'
6
+
7
+ module RailsSpotlight
8
+ module Middlewares
9
+ class RequestHandler
10
+ def initialize(app)
11
+ @app = app
12
+ end
13
+
14
+ def call(env)
15
+ path_info = env['PATH_INFO']
16
+ action, content_type = path_info.match(%r{/__rails_spotlight/(.+)\.(\w+)$}).try(:captures)
17
+ return handle(Rack::Request.new(env), action, content_type.try(:to_sym)) if action
18
+
19
+ app.call(env)
20
+ end
21
+
22
+ private
23
+
24
+ attr_reader :app
25
+
26
+ def handle(request, action, content_type = :json)
27
+ args = [SecureRandom.uuid, request, content_type]
28
+ case action
29
+ when 'file' then Handlers::FileActionHandler.new(*args).call
30
+ when 'sql' then Handlers::SqlActionHandler.new(*args).call
31
+ when 'verify' then Handlers::VerifyActionHandler.new(*args).call
32
+ else
33
+ Handlers::NotFoundActionHandler.new(*args).call
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/railtie'
4
+ require 'meta_request'
5
+
6
+ module RailsSpotlight
7
+ class Railtie < ::Rails::Railtie
8
+ initializer 'rails_spotlight.inject_middlewares' do
9
+ insert_middleware unless Rails.env.production?
10
+ end
11
+
12
+ # initializer 'rails_spotlight.log_interceptor' do
13
+ # Rails.logger&.extend(LogInterceptor)
14
+ # end
15
+ #
16
+ # initializer 'rails_spotlight.subscribe_to_notifications' do
17
+ # AppNotifications.subscribe
18
+ # end
19
+
20
+ def insert_middleware
21
+ if defined? ActionDispatch::DebugExceptions
22
+ app.middleware.insert_before ActionDispatch::DebugExceptions, RailsSpotlight::Middlewares::RequestHandler
23
+ else
24
+ app.middleware.use RailsSpotlight::Middlewares::RequestHandler
25
+ end
26
+ end
27
+
28
+ def app
29
+ Rails.application
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsSpotlight
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.2'
5
5
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'rails_spotlight/version'
4
+ require_relative 'rails_spotlight/middlewares/request_handler'
4
5
 
5
6
  module RailsSpotlight
6
- class Error < StandardError; end
7
- # Your code goes here...
8
7
  end
8
+
9
+ require_relative 'rails_spotlight/railtie'
metadata CHANGED
@@ -1,15 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_spotlight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pawel Niemczyk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-19 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-04-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rack-contrib
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
+ - !ruby/object:Gem::Dependency
34
+ name: railties
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 3.0.0
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '7.1'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 3.0.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '7.1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: meta_request
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.7'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.7'
67
+ - !ruby/object:Gem::Dependency
68
+ name: awesome_print
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.6'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.6'
81
+ - !ruby/object:Gem::Dependency
82
+ name: guard
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '2.12'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '2.12'
95
+ - !ruby/object:Gem::Dependency
96
+ name: guard-rspec
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '4.5'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '4.5'
109
+ - !ruby/object:Gem::Dependency
110
+ name: guard-rubocop
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1.2'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.2'
123
+ - !ruby/object:Gem::Dependency
124
+ name: rspec
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: 3.8.0
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: 3.8.0
137
+ - !ruby/object:Gem::Dependency
138
+ name: rubocop
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: 0.74.0
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: 0.74.0
13
151
  description: Lets have a look at your rails application in details
14
152
  email:
15
153
  - pniemczyk.info@gmail.com
@@ -24,11 +162,19 @@ files:
24
162
  - CODE_OF_CONDUCT.md
25
163
  - Gemfile
26
164
  - Gemfile.lock
165
+ - Guardfile
27
166
  - LICENSE.txt
28
167
  - README.md
29
168
  - Rakefile
30
169
  - exe/rails_spotlight
31
170
  - lib/rails_spotlight.rb
171
+ - lib/rails_spotlight/middlewares/handlers/base_action_handler.rb
172
+ - lib/rails_spotlight/middlewares/handlers/file_action_handler.rb
173
+ - lib/rails_spotlight/middlewares/handlers/not_found_action_handler.rb
174
+ - lib/rails_spotlight/middlewares/handlers/sql_action_handler.rb
175
+ - lib/rails_spotlight/middlewares/handlers/verify_action_handler.rb
176
+ - lib/rails_spotlight/middlewares/request_handler.rb
177
+ - lib/rails_spotlight/railtie.rb
32
178
  - lib/rails_spotlight/version.rb
33
179
  - sig/rails_spotlight.rbs
34
180
  homepage: https://github.com/pniemczyk/rails_spotlight
@@ -38,6 +184,7 @@ metadata:
38
184
  homepage_uri: https://github.com/pniemczyk/rails_spotlight
39
185
  source_code_uri: https://github.com/pniemczyk/rails_spotlight
40
186
  changelog_uri: https://github.com/pniemczyk/rails_spotlight/blob/master/CHANGELOG.md
187
+ rubygems_mfa_required: 'true'
41
188
  post_install_message:
42
189
  rdoc_options: []
43
190
  require_paths:
@@ -46,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
46
193
  requirements:
47
194
  - - ">="
48
195
  - !ruby/object:Gem::Version
49
- version: 3.2.0
196
+ version: 2.0.0
50
197
  required_rubygems_version: !ruby/object:Gem::Requirement
51
198
  requirements:
52
199
  - - ">="