Sinatra позволяет вам создавать свое собственное промежуточное программное обеспечение. Возможное решение (которое работает для меня) - создать собственный класс (промежуточное программное обеспечение в терминах Синатры) и использовать его. Пользовательский класс использует регулярное выражение для удаления всех пробелов в соответствии с содержимым:
class ObfuscateHTML
def initialize(app, options = {})
@app = app
end
def call(env)
status, headers, response = @app.call(env)
if headers["Content-Type"] =~ /\bhtml\b/
response[0] = response[0].gsub(/\s*(<[^>]+>)\s*/, '\1')
headers["Content-Length"] = response[0].size.to_s
end
[status, headers, response]
end
end
use ObfuscateHTML