Class: RailsAiBridge::Introspectors::SchemaIntrospector
- Inherits:
-
Object
- Object
- RailsAiBridge::Introspectors::SchemaIntrospector
- Defined in:
- lib/rails_ai_bridge/introspectors/schema_introspector.rb
Overview
Extracts database schema information — tables, columns, indexes, and foreign keys — from a live ActiveRecord connection when available, or by falling back to text-parsing +db/schema.rb+ via RailsAiBridge::Introspectors::Schema::StaticSchemaParser when no connection is present (CI, Claude Code, offline environments).
Instance Attribute Summary collapse
- #app ⇒ Rails::Application readonly
- #config ⇒ RailsAiBridge::Configuration readonly
Instance Method Summary collapse
-
#call ⇒ Hash{Symbol => Object}
Returns database schema context.
-
#initialize(app) ⇒ SchemaIntrospector
constructor
A new instance of SchemaIntrospector.
Constructor Details
#initialize(app) ⇒ SchemaIntrospector
Returns a new instance of SchemaIntrospector.
20 21 22 23 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 20 def initialize(app) @app = app @config = RailsAiBridge.configuration end |
Instance Attribute Details
#app ⇒ Rails::Application (readonly)
14 15 16 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 14 def app @app end |
#config ⇒ RailsAiBridge::Configuration (readonly)
17 18 19 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 17 def config @config end |
Instance Method Details
#call ⇒ Hash{Symbol => Object}
Returns database schema context. Uses a live connection when available; falls back to static text-parsing otherwise.
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 30 def call return static_schema_parse unless active_record_connected? { adapter: adapter_name, tables: extract_tables, total_tables: table_names.size, schema_version: current_schema_version } end |