Class: RailsAiContext::Introspectors::SchemaIntrospector
- Inherits:
-
Object
- Object
- RailsAiContext::Introspectors::SchemaIntrospector
- Extended by:
- StaticTier
- Defined in:
- lib/rails_ai_context/introspectors/schema_introspector.rb
Overview
Extracts database schema information including tables, columns, indexes, and foreign keys from the Rails application.
Constant Summary
Constants included from StaticTier
RailsAiContext::Introspectors::StaticTier::ALTERNATE_SOURCE, RailsAiContext::Introspectors::StaticTier::FILES_ONLY, RailsAiContext::Introspectors::StaticTier::KINDS, RailsAiContext::Introspectors::StaticTier::RUNTIME_ONLY
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
Returns the value of attribute app.
Instance Method Summary collapse
-
#call ⇒ Hash
Database schema context.
-
#initialize(app) ⇒ SchemaIntrospector
constructor
A new instance of SchemaIntrospector.
-
#static_call ⇒ Object
Static tier entry: skip the connection probe entirely and answer from schema.rb / structure.sql / migration files.
Methods included from StaticTier
answers_statically?, static_tier, static_tier_declared?, unavailable_reason, validate_static_tier!
Constructor Details
#initialize(app) ⇒ SchemaIntrospector
Returns a new instance of SchemaIntrospector.
13 14 15 |
# File 'lib/rails_ai_context/introspectors/schema_introspector.rb', line 13 def initialize(app) @app = app end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
11 12 13 |
# File 'lib/rails_ai_context/introspectors/schema_introspector.rb', line 11 def app @app end |
Instance Method Details
#call ⇒ Hash
Returns database schema context.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rails_ai_context/introspectors/schema_introspector.rb', line 18 def call return attach_secondary_databases(static_schema_parse) unless active_record_connected? return attach_secondary_databases(static_schema_parse) if table_names.empty? attach_secondary_databases({ adapter: adapter_name, tables: extract_tables, total_tables: table_names.size, schema_version: current_schema_version, check_constraints: check_constraints, enum_types: enum_types, generated_columns: generated_columns(schema_reader) }) end |
#static_call ⇒ Object
Static tier entry: skip the connection probe entirely and answer from schema.rb / structure.sql / migration files.
35 36 37 |
# File 'lib/rails_ai_context/introspectors/schema_introspector.rb', line 35 def static_call attach_secondary_databases(static_schema_parse) end |