У меня есть крошечный проект Sinatra, где мне нужно переопределить Rack::Auth::Basic#valid?
. В настоящее время я поместил это переопределение в основном файле для моего приложения, но кажется, что загромождать источник, как все становится все больше ...Sinatra - классы переопределения стойки
require "sinatra/base"
module Rack::Auth
class Basic
def valid?(auth)
# My overrides go here...
end
end
end
class App < Sinatra::Base
use Rack::Auth::Basic, "CustomRealm" do |username, password|
# Authentication
end
get "/" do
erb :index
end
end
Я хотел бы, чтобы переместить переопределение на внешний файл. Моя структура проекта является то вдоль линий
* views
|------ index.erb
* config.ru
* app.rb
* README.md
* LICENSE.md
* Gemfile
* Gemfile.lock
Где можно переместить Rack::Auth
переопределение, так что я могу использовать их внутри app.rb
? Я попытался поставить их на lib/rack/auth/basic.rb
, но это не сработало ... Каковы стандарты Sinatra на этом?
+1. В качестве альтернативы я бы поставил код в 'lib/rack/auth.rb', так как это вы сделали бы, если бы Rack не была внешней библиотекой. – iain