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
text-parsing the schema file when no connection is present (CI, Claude
Code, offline environments). The static fallback prefers db/schema.rb
(RailsAiBridge::Introspectors::Schema::StaticSchemaParser) and falls back to db/structure.sql
(RailsAiBridge::Introspectors::Schema::StaticStructureSqlParser) for schema_format = :sql apps.
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.
22 23 24 25 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 22 def initialize(app) @app = app @config = RailsAiBridge.configuration end |
Instance Attribute Details
#app ⇒ Rails::Application (readonly)
16 17 18 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 16 def app @app end |
#config ⇒ RailsAiBridge::Configuration (readonly)
19 20 21 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 19 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.
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rails_ai_bridge/introspectors/schema_introspector.rb', line 32 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 |