diff --git a/diversipub.gemspec b/diversipub.gemspec index 3612823..ece5f98 100644 --- a/diversipub.gemspec +++ b/diversipub.gemspec @@ -46,7 +46,6 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency 'puma', '~> 6.2', '>= 6.2.2' spec.add_runtime_dependency 'rack', '~> 2.2', '>= 2.2.7' spec.add_runtime_dependency 'rack-protection', '~> 3.0', '>= 3.0.6' - spec.add_runtime_dependency 'sinatra', '~> 3.0', '>= 3.0.6' spec.add_development_dependency 'bundler', '~> 2.4' spec.add_development_dependency 'pry', '~> 0.14' diff --git a/exe/diversipub b/exe/diversipub index e56c490..009e15c 100755 --- a/exe/diversipub +++ b/exe/diversipub @@ -38,9 +38,6 @@ ENV.delete 'RACK_MULTIPART_FILE_LIMIT' ENV.delete 'RACK_MULTIPART_PART_LIMIT' ENV.delete 'RACK_MULTIPART_TOTAL_PART_LIMIT' -# Clean Sinatra ENVs -ENV.delete 'PORT' - # Freeze well-known constants ARGV.each(&:freeze).freeze ENV.each_key(&:freeze).each_value(&:freeze) # ENV itself can't be frozen diff --git a/lib/diversipub.rb b/lib/diversipub.rb index d60b032..7c0183c 100644 --- a/lib/diversipub.rb +++ b/lib/diversipub.rb @@ -14,7 +14,7 @@ require 'pathname' require 'puma' require 'rack' require 'rack/handler/puma' -require 'sinatra/base' +require 'rack/protection' ################ # Own requires # @@ -23,7 +23,6 @@ require 'sinatra/base' require_relative 'diversipub/main' require_relative 'diversipub/puma_task' require_relative 'diversipub/rack_app' -require_relative 'diversipub/sinatra_app' require_relative 'diversipub/version' ## diff --git a/lib/diversipub/puma_task.rb b/lib/diversipub/puma_task.rb index e1c68f1..06e1b14 100644 --- a/lib/diversipub/puma_task.rb +++ b/lib/diversipub/puma_task.rb @@ -64,11 +64,7 @@ module Diversipub end def rack_app - @rack_app ||= RackApp.new sinatra_app - end - - def sinatra_app - @sinatra_app ||= SinatraApp.new @main + @rack_app ||= RackApp.new @main end end end diff --git a/lib/diversipub/rack_app.rb b/lib/diversipub/rack_app.rb index 4d63f86..8ac1bcf 100644 --- a/lib/diversipub/rack_app.rb +++ b/lib/diversipub/rack_app.rb @@ -5,8 +5,8 @@ module Diversipub # Rack web application. # class RackApp - def initialize(sinatra_app) - @sinatra_app = sinatra_app + def initialize(main) + @main = main end def call(env) @@ -23,8 +23,8 @@ module Diversipub @builder ||= Rack::Builder.new.tap do |builder| builder.use Rack::Head builder.use Rack::Static, **rack_static_kwargs - builder.use Rack::Protection - builder.run @sinatra_app + builder.use Rack::Protection, except: %i[session_hijacking] + builder.run rest end end @@ -36,5 +36,9 @@ module Diversipub urls: [''].freeze, }.freeze end + + def rest + @rest ||= ->(_) { [200, {}, ['Hello, World!']] } + end end end diff --git a/lib/diversipub/sinatra_app.rb b/lib/diversipub/sinatra_app.rb deleted file mode 100644 index de51e93..0000000 --- a/lib/diversipub/sinatra_app.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -module Diversipub - ## - # Sinatra web application. - # - class SinatraApp < Sinatra::Base - set :environment, :production - set :root, File.expand_path('../..', __dir__).freeze - set :views, nil - set :public_folder, nil - - def initialize(main) - super() - @main = main - end - - class << self - # Disable default Sinatra servers & middleware. - alias new new! - end - - get '/index.html' do - redirect 'ru/index.html' - end - end -end