Class: RailsInformant::Mcp::Configuration
- Inherits:
-
Object
- Object
- RailsInformant::Mcp::Configuration
- Defined in:
- lib/rails_informant/mcp/configuration.rb
Instance Method Summary collapse
- #client_for(name) ⇒ Object
- #default_environment ⇒ Object
- #environment_names ⇒ Object
-
#initialize(allow_insecure: false) ⇒ Configuration
constructor
A new instance of Configuration.
- #safe_environments ⇒ Object
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
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_environment ⇒ Object
12 13 14 |
# File 'lib/rails_informant/mcp/configuration.rb', line 12 def default_environment environment_names.first end |
#environment_names ⇒ Object
16 17 18 |
# File 'lib/rails_informant/mcp/configuration.rb', line 16 def environment_names @environments.keys end |
#safe_environments ⇒ Object
20 21 22 |
# File 'lib/rails_informant/mcp/configuration.rb', line 20 def safe_environments @environments.transform_values { |env| { url: env[:url] } } end |