Module: RailsAiContext

Defined in:
lib/rails_ai_context.rb,
lib/rails_ai_context/vfs.rb,
lib/rails_ai_context/doctor.rb,
lib/rails_ai_context/engine.rb,
lib/rails_ai_context/server.rb,
lib/rails_ai_context/version.rb,
lib/rails_ai_context/watcher.rb,
lib/rails_ai_context/ast_cache.rb,
lib/rails_ai_context/resources.rb,
lib/rails_ai_context/safe_file.rb,
lib/rails_ai_context/confidence.rb,
lib/rails_ai_context/middleware.rb,
lib/rails_ai_context/live_reload.rb,
lib/rails_ai_context/schema_hint.rb,
lib/rails_ai_context/test_helper.rb,
lib/rails_ai_context/tools/query.rb,
lib/rails_ai_context/introspector.rb,
lib/rails_ai_context/configuration.rb,
lib/rails_ai_context/fingerprinter.rb,
lib/rails_ai_context/tools/get_env.rb,
lib/rails_ai_context/tools/onboard.rb,
lib/rails_ai_context/legacy_cleanup.rb,
lib/rails_ai_context/tools/diagnose.rb,
lib/rails_ai_context/tools/get_gems.rb,
lib/rails_ai_context/tools/get_view.rb,
lib/rails_ai_context/tools/validate.rb,
lib/rails_ai_context/cli/tool_runner.rb,
lib/rails_ai_context/instrumentation.rb,
lib/rails_ai_context/tools/base_tool.rb,
lib/rails_ai_context/tools/read_logs.rb,
lib/rails_ai_context/hydration_result.rb,
lib/rails_ai_context/tools/get_config.rb,
lib/rails_ai_context/tools/get_routes.rb,
lib/rails_ai_context/tools/get_schema.rb,
lib/rails_ai_context/tools/get_concern.rb,
lib/rails_ai_context/tools/get_context.rb,
lib/rails_ai_context/tools/search_code.rb,
lib/rails_ai_context/tools/search_docs.rb,
lib/rails_ai_context/tools/get_stimulus.rb,
lib/rails_ai_context/tools/runtime_info.rb,
lib/rails_ai_context/tools/generate_test.rb,
lib/rails_ai_context/tools/get_callbacks.rb,
lib/rails_ai_context/tools/get_test_info.rb,
lib/rails_ai_context/tools/get_turbo_map.rb,
lib/rails_ai_context/tools/security_scan.rb,
lib/rails_ai_context/mcp_config_generator.rb,
lib/rails_ai_context/tools/review_changes.rb,
lib/rails_ai_context/tools/analyze_feature.rb,
lib/rails_ai_context/tools/get_controllers.rb,
lib/rails_ai_context/tools/get_conventions.rb,
lib/rails_ai_context/tools/get_job_pattern.rb,
lib/rails_ai_context/tools/session_context.rb,
lib/rails_ai_context/tools/dependency_graph.rb,
lib/rails_ai_context/tools/get_edit_context.rb,
lib/rails_ai_context/hydrators/view_hydrator.rb,
lib/rails_ai_context/tools/get_model_details.rb,
lib/rails_ai_context/tools/migration_advisor.rb,
lib/rails_ai_context/tools/performance_check.rb,
lib/rails_ai_context/tools/get_frontend_stack.rb,
lib/rails_ai_context/tools/get_helper_methods.rb,
lib/rails_ai_context/tools/get_service_pattern.rb,
app/controllers/rails_ai_context/mcp_controller.rb,
lib/rails_ai_context/serializers/json_serializer.rb,
lib/rails_ai_context/tools/get_component_catalog.rb,
lib/rails_ai_context/tools/get_partial_interface.rb,
lib/rails_ai_context/hydrators/controller_hydrator.rb,
lib/rails_ai_context/hydrators/hydration_formatter.rb,
lib/rails_ai_context/hydrators/schema_hint_builder.rb,
lib/rails_ai_context/serializers/claude_serializer.rb,
lib/rails_ai_context/serializers/tool_guide_helper.rb,
lib/rails_ai_context/introspectors/api_introspector.rb,
lib/rails_ai_context/introspectors/gem_introspector.rb,
lib/rails_ai_context/introspectors/job_introspector.rb,
lib/rails_ai_context/serializers/copilot_serializer.rb,
lib/rails_ai_context/introspectors/auth_introspector.rb,
lib/rails_ai_context/introspectors/i18n_introspector.rb,
lib/rails_ai_context/introspectors/test_introspector.rb,
lib/rails_ai_context/introspectors/view_introspector.rb,
lib/rails_ai_context/serializers/markdown_serializer.rb,
lib/rails_ai_context/serializers/opencode_serializer.rb,
lib/rails_ai_context/introspectors/model_introspector.rb,
lib/rails_ai_context/introspectors/route_introspector.rb,
lib/rails_ai_context/introspectors/seeds_introspector.rb,
lib/rails_ai_context/introspectors/turbo_introspector.rb,
lib/rails_ai_context/introspectors/config_introspector.rb,
lib/rails_ai_context/introspectors/devops_introspector.rb,
lib/rails_ai_context/introspectors/engine_introspector.rb,
lib/rails_ai_context/introspectors/schema_introspector.rb,
lib/rails_ai_context/introspectors/source_introspector.rb,
lib/rails_ai_context/serializers/stack_overview_helper.rb,
lib/rails_ai_context/serializers/test_command_detection.rb,
lib/rails_ai_context/introspectors/stimulus_introspector.rb,
lib/rails_ai_context/serializers/claude_rules_serializer.rb,
lib/rails_ai_context/serializers/context_file_serializer.rb,
lib/rails_ai_context/serializers/cursor_rules_serializer.rb,
lib/generators/rails_ai_context/install/install_generator.rb,
lib/rails_ai_context/introspectors/component_introspector.rb,
lib/rails_ai_context/introspectors/migration_introspector.rb,
lib/rails_ai_context/introspectors/rake_task_introspector.rb,
lib/rails_ai_context/introspectors/controller_introspector.rb,
lib/rails_ai_context/introspectors/convention_introspector.rb,
lib/rails_ai_context/introspectors/listeners/base_listener.rb,
lib/rails_ai_context/introspectors/middleware_introspector.rb,
lib/rails_ai_context/serializers/compact_serializer_helper.rb,
lib/rails_ai_context/serializers/opencode_rules_serializer.rb,
lib/rails_ai_context/introspectors/action_text_introspector.rb,
lib/rails_ai_context/introspectors/listeners/enums_listener.rb,
lib/rails_ai_context/introspectors/performance_introspector.rb,
lib/rails_ai_context/introspectors/listeners/macros_listener.rb,
lib/rails_ai_context/introspectors/listeners/scopes_listener.rb,
lib/rails_ai_context/introspectors/listeners/methods_listener.rb,
lib/rails_ai_context/introspectors/view_template_introspector.rb,
lib/rails_ai_context/introspectors/action_mailbox_introspector.rb,
lib/rails_ai_context/introspectors/active_storage_introspector.rb,
lib/rails_ai_context/introspectors/asset_pipeline_introspector.rb,
lib/rails_ai_context/introspectors/database_stats_introspector.rb,
lib/rails_ai_context/introspectors/multi_database_introspector.rb,
lib/rails_ai_context/introspectors/listeners/callbacks_listener.rb,
lib/rails_ai_context/serializers/copilot_instructions_serializer.rb,
lib/rails_ai_context/introspectors/listeners/validations_listener.rb,
lib/rails_ai_context/introspectors/frontend_framework_introspector.rb,
lib/rails_ai_context/introspectors/listeners/associations_listener.rb,
lib/rails_ai_context/introspectors/listeners/model_reference_listener.rb

Defined Under Namespace

Modules: AstCache, CLI, Confidence, Generators, Hydrators, Instrumentation, Introspectors, LegacyCleanup, Resources, SafeFile, Serializers, TestHelper, Tools, VFS Classes: Configuration, ConfigurationError, Doctor, Engine, Error, Fingerprinter, HydrationResult, Introspector, LiveReload, McpConfigGenerator, McpController, Middleware, SchemaHint, Server, Watcher

Constant Summary collapse

VERSION =
"5.8.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



19
20
21
# File 'lib/rails_ai_context.rb', line 19

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



23
24
25
26
# File 'lib/rails_ai_context.rb', line 23

def configure
  @configured_via_block = true
  yield(configuration)
end

.configured_via_block?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/rails_ai_context.rb', line 28

def configured_via_block?
  @configured_via_block || false
end

.generate_context(app = nil, format: :all) ⇒ Object

Generate context files (CLAUDE.md, .cursor/rules/, etc.)



40
41
42
43
44
# File 'lib/rails_ai_context.rb', line 40

def generate_context(app = nil, format: :all)
  app ||= Rails.application
  context = introspect(app)
  Serializers::ContextFileSerializer.new(context, format: format).call
end

.introspect(app = nil) ⇒ Object

Quick access to introspect the current Rails app Returns a hash of all discovered context



34
35
36
37
# File 'lib/rails_ai_context.rb', line 34

def introspect(app = nil)
  app ||= Rails.application
  Introspector.new(app).call
end

.start_mcp_server(app = nil, transport: :stdio) ⇒ Object

Start the MCP server programmatically



47
48
49
50
# File 'lib/rails_ai_context.rb', line 47

def start_mcp_server(app = nil, transport: :stdio)
  app ||= Rails.application
  Server.new(app, transport: transport).start
end