Class: RailsAiBridge::Introspectors::EngineIntrospector
- Inherits:
-
Object
- Object
- RailsAiBridge::Introspectors::EngineIntrospector
- Defined in:
- lib/rails_ai_bridge/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
Returns the value of attribute app.
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.
37 38 39 |
# File 'lib/rails_ai_bridge/introspectors/engine_introspector.rb', line 37 def initialize(app) @app = app end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
8 9 10 |
# File 'lib/rails_ai_bridge/introspectors/engine_introspector.rb', line 8 def app @app end |
Instance Method Details
#call ⇒ Hash
Returns mounted engines with paths and descriptions.
42 43 44 45 46 47 48 49 |
# File 'lib/rails_ai_bridge/introspectors/engine_introspector.rb', line 42 def call { mounted_engines: discover_mounted_engines, rails_engines: discover_rails_engines } rescue StandardError => error { error: error. } end |