Class: ClaudeHooks::Output::ConfigChange
- Inherits:
-
Base
- Object
- Base
- ClaudeHooks::Output::ConfigChange
show all
- Defined in:
- lib/claude_hooks/output/config_change.rb
Instance Attribute Summary
Attributes inherited from Base
#data
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
#continue?, for_hook_type, #hook_specific_output, #initialize, #output_and_exit, #output_stream, #stop_reason, #suppress_output?, #system_message, #terminal_sequence, #to_json
Class Method Details
.merge(*outputs) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/claude_hooks/output/config_change.rb', line 24
def self.merge(*outputs)
compacted_outputs = outputs.compact
return compacted_outputs.first if compacted_outputs.length == 1
return super(*outputs) if compacted_outputs.empty?
merged = super(*outputs)
merged_data = merged.data
reasons = []
compacted_outputs.each do |output|
output_data = output.respond_to?(:data) ? output.data : output
if output_data['decision'] == 'block'
merged_data['decision'] = 'block'
r = output_data['reason']
reasons << r if r && !r.empty?
end
end
merged_data['reason'] = reasons.join('; ') if reasons.any?
new(merged_data)
end
|
Instance Method Details
#blocked? ⇒ Boolean
16
17
18
|
# File 'lib/claude_hooks/output/config_change.rb', line 16
def blocked?
decision == 'block'
end
|
#decision ⇒ Object
8
9
10
|
# File 'lib/claude_hooks/output/config_change.rb', line 8
def decision
@data['decision']
end
|
#exit_code ⇒ Object
20
21
22
|
# File 'lib/claude_hooks/output/config_change.rb', line 20
def exit_code
default_exit_code
end
|
#reason ⇒ Object
12
13
14
|
# File 'lib/claude_hooks/output/config_change.rb', line 12
def reason
@data['reason'] || ''
end
|