Class: RailsAiBridge::Doctor

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/doctor.rb,
lib/rails_ai_bridge/doctor/check.rb,
lib/rails_ai_bridge/doctor/checkers/base_checker.rb,
lib/rails_ai_bridge/doctor/checkers/gems_checker.rb,
lib/rails_ai_bridge/doctor/checkers/i18n_checker.rb,
lib/rails_ai_bridge/doctor/checkers/tests_checker.rb,
lib/rails_ai_bridge/doctor/checkers/views_checker.rb,
lib/rails_ai_bridge/doctor/checkers/models_checker.rb,
lib/rails_ai_bridge/doctor/checkers/routes_checker.rb,
lib/rails_ai_bridge/doctor/checkers/schema_checker.rb,
lib/rails_ai_bridge/doctor/checkers/ripgrep_checker.rb,
lib/rails_ai_bridge/doctor/checkers/migrations_checker.rb,
lib/rails_ai_bridge/doctor/checkers/controllers_checker.rb,
lib/rails_ai_bridge/doctor/checkers/context_files_checker.rb,
lib/rails_ai_bridge/doctor/checkers/mcp_buildable_checker.rb,
lib/rails_ai_bridge/doctor/checkers/view_mcp_tool_checker.rb,
lib/rails_ai_bridge/doctor/checkers/bridge_metadata_checker.rb,
lib/rails_ai_bridge/doctor/checkers/stimulus_mcp_tool_checker.rb

Overview

Diagnostic checker that validates the environment and reports AI readiness with pass/warn/fail checks and a readiness score.

Defined Under Namespace

Modules: Checkers Classes: Check

Constant Summary collapse

CHECKS =

Maps stable check identifiers to checker classes. Each value must implement +.call+ on an instance and return a Check.

{
  check_schema: Checkers::SchemaChecker,
  check_models: Checkers::ModelsChecker,
  check_routes: Checkers::RoutesChecker,
  check_gems: Checkers::GemsChecker,
  check_controllers: Checkers::ControllersChecker,
  check_views: Checkers::ViewsChecker,
  check_i18n: Checkers::I18nChecker,
  check_tests: Checkers::TestsChecker,
  check_migrations: Checkers::MigrationsChecker,
  check_context_files: Checkers::ContextFilesChecker,
  check_mcp_buildable: Checkers::McpBuildableChecker,
  check_ripgrep: Checkers::RipgrepChecker,
  check_view_mcp_tool: Checkers::ViewMcpToolChecker,
  check_stimulus_mcp_tool: Checkers::StimulusMcpToolChecker,
  check_bridge_metadata: Checkers::BridgeMetadataChecker
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app = nil) ⇒ void

Parameters:

  • app (Rails::Application, nil) (defaults to: nil)

    application to inspect



31
32
33
# File 'lib/rails_ai_bridge/doctor.rb', line 31

def initialize(app = nil)
  @app = app || Rails.application
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



27
28
29
# File 'lib/rails_ai_bridge/doctor.rb', line 27

def app
  @app
end

#fixString? (readonly)

Returns suggested remediation when not +:pass+.

Returns:

  • (String, nil)

    suggested remediation when not +:pass+



15
# File 'lib/rails_ai_bridge/doctor/check.rb', line 15

Check = Data.define(:name, :status, :message, :fix)

#messageString (readonly)

Returns human-readable outcome.

Returns:

  • (String)

    human-readable outcome



15
# File 'lib/rails_ai_bridge/doctor/check.rb', line 15

Check = Data.define(:name, :status, :message, :fix)

#nameString (readonly)

Returns short label shown in reports (e.g. "Schema").

Returns:

  • (String)

    short label shown in reports (e.g. "Schema")



15
# File 'lib/rails_ai_bridge/doctor/check.rb', line 15

Check = Data.define(:name, :status, :message, :fix)

#statusSymbol (readonly)

Returns +:pass+, +:warn+, or +:fail+.

Returns:

  • (Symbol)

    +:pass+, +:warn+, or +:fail+



15
# File 'lib/rails_ai_bridge/doctor/check.rb', line 15

Check = Data.define(:name, :status, :message, :fix)

Instance Method Details

#runHash

Runs all diagnostic checks and computes a readiness score.

Returns:

  • (Hash)

    diagnostic result with :checks and :score



38
39
40
41
42
# File 'lib/rails_ai_bridge/doctor.rb', line 38

def run
  results = CHECKS.values.map { |checker_class| checker_class.new(app).call }
  score = compute_score(results)
  { checks: results, score: score }
end