我在尋找的功能與Rails中的rake middleware
命令類似,但通用機架應用程序除外。獲取通用機架應用程序中的中間件的有序列表?
20
A
回答
17
這將返回所有的機架應用程序(包括中間件)的列表:
require 'rack'
def middleware_classes(app)
r = [app]
while ((next_app = r.last.instance_variable_get(:@app)) != nil)
r << next_app
end
r.map{|e| e.instance_variable_defined?(:@app) ? e.class : e }
end
app = Rack::Builder.parse_file('config.ru').first
p middleware_classes(app)
-3
這是姍姍來遲,我知道
here's a nice thread,明確的答案是最後一篇
更新每馬克 - 安德烈的評論:
以下是這link
最後發表的文章Rack沒有這個機制,因爲並不是所有的中間件都是通過@middleware添加的,Sinatra不能告訴你使用了什麼中間件。順便說一句,它可以告訴你什麼是可能的。中間件不一定是線性列表(即使用Rack路由器或其他設備時)。
+5
-1。 SO的全部內容不必通過發佈列表。複製並改進正確答案並將該鏈接添加爲源。 – 2013-01-15 21:30:21
19
> rake middleware
use ActionDispatch::Static
use Rack::Lock
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007ffd148f9468>
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::RemoteIp
use ActionDispatch::Reloader
use ActionDispatch::Callbacks
use ActiveRecord::Migration::CheckPending
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::Head
use Rack::ConditionalGet
use Rack::ETag
run RackTest::Application.routes
http://pothibo.com/2013/11/ruby-on-rails-inside-actiondispatch-and-rack/
+13
從描述中,很清楚他知道'rake中間件'。他希望這是一個非Rails應用程序。 – 2014-10-09 22:14:14
相關問題
- 1. 機架應用程序中的Rails應用程序?
- 2. 從應用程序列表中獲取應用程序的使用方法
- 3. 獲取應用程序目錄中的文件列表
- 4. 獲取沒有小部件的應用程序列表
- 5. Sinatra應用程序作爲機架中間件TimesOut Rails 3
- 6. 獲取手機上的磨損應用程序列表
- 7. 獲取在Android中使用數據的列表應用程序
- 8. 獲取安卓手機中的所有應用程序
- 9. 如何獲取應用程序下的房間列表?
- 10. 從iCloud獲取應用程序列表
- 11. 玩框架應用程序間通信
- 12. 獲取可以創建通知的應用程序列表
- 13. 獲取應用程序所需的程序集列表
- 14. 在手機間隙中獲取應用程序目錄
- 15. 應用程序沒有出現在應用程序列表中?
- 16. 在webworks應用程序中獲取用戶界面的框架
- 17. 如何獲取應用程序中所有.properties文件的列表
- 18. 獲取所有安裝的應用程序的圖標列表
- 19. 獲取所有安裝的應用程序的列表
- 20. 獲取所有正在運行的應用程序的列表
- 21. WinRT中的應用程序間通信
- 22. Ios中的應用程序間通信
- 23. 如何獲取Sinatra應用程序中使用的所有路線的列表?
- 24. 通過應用程序ID在OSX shell中獲取應用程序的路徑
- 25. 在Flex 4中,如何獲取我的應用程序中的組件列表
- 26. 在UWP中獲取已安裝的應用程序列表
- 27. 如何獲取列表中的應用程序圖標?
- 28. 在我的應用程序包中獲取AppWidgetProviders列表
- 29. 獲取Metro應用程序中的DNS後綴搜索列表
- 30. 如何獲取Android中活動應用程序的列表?
+1像一個魅力工作。我把所有這些放到'test-rack.rb'腳本中,並通過'ruby test-rack.rb'運行。 (編輯問題添加缺少的機架需求;) – 2014-10-18 02:50:31