rails_spotlight 0.1.0 → 0.1.2

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: 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
  - - ">="