Class: RailsAiBridge::Configuration

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/rails_ai_bridge/configuration.rb

Overview

Facade that composes six config sub-objects and exposes a flat DSL.

All attributes remain accessible directly on this object for backward compatibility. Callers that need only one concern can receive the sub-object via +#auth+, +#server+, +#introspection+, +#output+, +#mcp+, or +#registry+.

Flat delegators are provided for the most commonly set attributes on each sub-object. Less-common attributes (e.g. +mcp.mode+, +mcp.authorize+) are only accessible via the sub-object directly, keeping the top-level DSL clean.

Constant Summary collapse

PRESETS =
{
  standard: %i[schema models routes jobs gems conventions controllers tests migrations],
  full: %i[schema models non_ar_models routes jobs gems conventions stimulus controllers views turbo
           i18n config active_storage action_text auth api tests rake_tasks assets
           devops action_mailbox migrations seeds middleware engines multi_database],
  regulated: %i[routes jobs gems conventions controllers tests]
}.freeze
INTROSPECTION_CATEGORY_INTROSPECTORS =
{
  domain_metadata: %i[schema models non_ar_models migrations],
  api_surface: %i[api],
  ui_stack: %i[views stimulus turbo i18n]
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



61
62
63
64
65
66
67
68
69
# File 'lib/rails_ai_bridge/configuration.rb', line 61

def initialize
  @auth          = Config::Auth.new
  @server        = Config::Server.new
  @introspection = Config::Introspection.new
  @output        = Config::Output.new
  @mcp           = Config::Mcp.new
  @rubydex       = Config::Rubydex.new
  @registry      = Config::Registry.new
end

Instance Attribute Details

#authConfig::Auth (readonly)

Returns:



41
42
43
# File 'lib/rails_ai_bridge/configuration.rb', line 41

def auth
  @auth
end

#introspectionConfig::Introspection (readonly)



47
48
49
# File 'lib/rails_ai_bridge/configuration.rb', line 47

def introspection
  @introspection
end

#mcpConfig::Mcp (readonly)

Returns:



53
54
55
# File 'lib/rails_ai_bridge/configuration.rb', line 53

def mcp
  @mcp
end

#outputConfig::Output (readonly)

Returns:



50
51
52
# File 'lib/rails_ai_bridge/configuration.rb', line 50

def output
  @output
end

#registryConfig::Registry (readonly)

Returns:



59
60
61
# File 'lib/rails_ai_bridge/configuration.rb', line 59

def registry
  @registry
end

#rubydexConfig::Rubydex (readonly)

Returns:



56
57
58
# File 'lib/rails_ai_bridge/configuration.rb', line 56

def rubydex
  @rubydex
end

#serverConfig::Server (readonly)

Returns:



44
45
46
# File 'lib/rails_ai_bridge/configuration.rb', line 44

def server
  @server
end

Instance Method Details

#rubydex_available?Boolean

Convenience predicate for checking if rubydex is available and enabled.

Returns:

  • (Boolean)


131
132
133
# File 'lib/rails_ai_bridge/configuration.rb', line 131

def rubydex_available?
  rubydex_enabled && RubydexAdapter.available?
end