Class: RailsInformant::Mcp::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_informant/mcp/configuration.rb

Instance Method Summary collapse

Constructor Details

#initialize(allow_insecure: false) ⇒ Configuration

Returns a new instance of Configuration.



4
5
6
7
8
9
10
# File 'lib/rails_informant/mcp/configuration.rb', line 4

def initialize(allow_insecure: false)
  @allow_insecure = allow_insecure
  @environments = load_from_env_vars
  @clients = {}

  raise "No environments configured. Set INFORMANT_<ENV>_URL and INFORMANT_<ENV>_TOKEN environment variables." if @environments.empty?
end

Instance Method Details

#client_for(name) ⇒ Object

Raises:

  • (ArgumentError)


24
25
26
27
28
29
# File 'lib/rails_informant/mcp/configuration.rb', line 24

def client_for(name)
  env = @environments[name]
  raise ArgumentError, "Unknown environment: #{name}. Available: #{environment_names.join(', ')}" unless env

  @clients[name] ||= Client.new(url: env[:url], token: env[:token], allow_insecure: @allow_insecure, path_prefix: env[:path_prefix] || "/informant")
end

#default_environmentObject



12
13
14
# File 'lib/rails_informant/mcp/configuration.rb', line 12

def default_environment
  environment_names.first
end

#environment_namesObject



16
17
18
# File 'lib/rails_informant/mcp/configuration.rb', line 16

def environment_names
  @environments.keys
end

#safe_environmentsObject



20
21
22
# File 'lib/rails_informant/mcp/configuration.rb', line 20

def safe_environments
  @environments.transform_values { |env| { url: env[:url] } }
end