Class: TalkToYourApp::Plugins::Flipper::Tools::ReadFlag

Inherits:
Tool
  • Object
show all
Defined in:
lib/talk_to_your_app/plugins/flipper/tools/read_flag.rb

Overview

Reads a flag’s effective state plus its full per-gate configuration. With an actor, ‘enabled` reflects that actor; otherwise it reflects the global state. Unknown flags read as disabled.

Instance Method Summary collapse

Methods inherited from Tool

argument, arguments, connection, default_arguments, description, dispatch, input_schema_hash, invoke, name, normalize_response, to_mcp_definition, to_mcp_tool

Instance Method Details

#call(args, ctx) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/talk_to_your_app/plugins/flipper/tools/read_flag.rb', line 20

def call(args, ctx)
  actor = Flipper.actor_for(args[:actor_class], args[:actor_id])
  enabled, gates = ctx.connection do
    [Flipper.state(args[:name], actor), Flipper.gate_values(args[:name])]
  end
  json(name: args[:name], enabled: enabled, actor: actor&.flipper_id, gates: gates)
rescue StandardError => e
  error("Flipper storage unavailable: #{e.class}: #{e.message}")
end