Class: ClaudeHooks::Output::PermissionDenied
- Defined in:
- lib/claude_hooks/output/permission_denied.rb
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
-
#exit_code ⇒ Object
Exit code is ignored by Claude Code for PermissionDenied.
- #output_stream ⇒ Object
- #retry? ⇒ Boolean
Methods inherited from Base
#continue?, for_hook_type, #hook_specific_output, #initialize, #output_and_exit, #stop_reason, #suppress_output?, #system_message, #terminal_sequence, #to_json
Constructor Details
This class inherits a constructor from ClaudeHooks::Output::Base
Class Method Details
.merge(*outputs) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/claude_hooks/output/permission_denied.rb', line 21 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 # If any hook says retry, retry should_retry = compacted_outputs.any? do |output| output_data = output.respond_to?(:data) ? output.data : output output_data.dig('hookSpecificOutput', 'retry') == true end merged_data['hookSpecificOutput'] ||= { 'hookEventName' => 'PermissionDenied' } merged_data['hookSpecificOutput']['retry'] = should_retry new(merged_data) end |
Instance Method Details
#exit_code ⇒ Object
Exit code is ignored by Claude Code for PermissionDenied.
13 14 15 |
# File 'lib/claude_hooks/output/permission_denied.rb', line 13 def exit_code 0 end |
#output_stream ⇒ Object
17 18 19 |
# File 'lib/claude_hooks/output/permission_denied.rb', line 17 def output_stream :stdout end |
#retry? ⇒ Boolean
8 9 10 |
# File 'lib/claude_hooks/output/permission_denied.rb', line 8 def retry? hook_specific_output['retry'] == true end |