Class: RailsAiContext::Introspectors::EngineIntrospector
- Inherits:
-
Object
- Object
- RailsAiContext::Introspectors::EngineIntrospector
- Defined in:
- lib/rails_ai_context/introspectors/engine_introspector.rb
Overview
Discovers mounted Rails engines and Rack apps from config/routes.rb. Identifies well-known engines and provides context about what each does.
Constant Summary collapse
- KNOWN_ENGINES =
{ "Sidekiq::Web" => { category: :admin, description: "Sidekiq background job dashboard" }, "GoodJob::Engine" => { category: :admin, description: "GoodJob dashboard for background jobs" }, "MissionControl::Jobs::Engine" => { category: :admin, description: "Rails Mission Control for SolidQueue jobs" }, "ActiveAdmin::Engine" => { category: :admin, description: "ActiveAdmin administration framework" }, "RailsAdmin::Engine" => { category: :admin, description: "Rails Admin dashboard" }, "Administrate::Engine" => { category: :admin, description: "Thoughtbot Administrate dashboard" }, "Avo::Engine" => { category: :admin, description: "Avo admin panel" }, "Madmin::Engine" => { category: :admin, description: "Madmin admin interface" }, "Flipper::UI" => { category: :feature_flags, description: "Flipper feature flag dashboard" }, "Flipper::Api" => { category: :feature_flags, description: "Flipper feature flag API" }, "PgHero::Engine" => { category: :monitoring, description: "PgHero PostgreSQL performance dashboard" }, "Blazer::Engine" => { category: :monitoring, description: "Blazer SQL query dashboard" }, "Coverband::Engine" => { category: :monitoring, description: "Coverband code coverage in production" }, "Rswag::Api::Engine" => { category: :api_docs, description: "Rswag API documentation (Swagger)" }, "Rswag::Ui::Engine" => { category: :api_docs, description: "Rswag Swagger UI" }, "GraphiQL::Rails::Engine" => { category: :api_docs, description: "GraphiQL in-browser IDE for GraphQL" }, "Lookbook::Engine" => { category: :ui, description: "Lookbook ViewComponent previews" }, "LetterOpenerWeb::Engine" => { category: :dev_tools, description: "Letter Opener Web email preview" }, "ActionCable.server" => { category: :realtime, description: "Action Cable WebSocket server" }, "Devise::Engine" => { category: :auth, description: "Devise authentication engine" }, "Doorkeeper::Engine" => { category: :auth, description: "Doorkeeper OAuth 2 provider" }, "ActionMailbox::Engine" => { category: :mail, description: "Action Mailbox inbound email processing" }, "ActiveStorage::Engine" => { category: :storage, description: "Active Storage file uploads" } }.freeze
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
rubocop:disable Metrics/ClassLength.
Instance Method Summary collapse
-
#call ⇒ Hash
Mounted engines with paths and descriptions.
-
#initialize(app) ⇒ EngineIntrospector
constructor
A new instance of EngineIntrospector.
Constructor Details
#initialize(app) ⇒ EngineIntrospector
Returns a new instance of EngineIntrospector.
36 37 38 |
# File 'lib/rails_ai_context/introspectors/engine_introspector.rb', line 36 def initialize(app) @app = app end |
Instance Attribute Details
#app ⇒ Object (readonly)
rubocop:disable Metrics/ClassLength
8 9 10 |
# File 'lib/rails_ai_context/introspectors/engine_introspector.rb', line 8 def app @app end |
Instance Method Details
#call ⇒ Hash
Returns mounted engines with paths and descriptions.
41 42 43 44 45 46 47 48 |
# File 'lib/rails_ai_context/introspectors/engine_introspector.rb', line 41 def call { mounted_engines: discover_mounted_engines, rails_engines: discover_rails_engines } rescue => e { error: e. } end |