Exception: Textus::WriteForbidden

Inherits:
Error
  • Object
show all
Defined in:
lib/textus/errors.rb

Instance Attribute Summary

Attributes inherited from Error

#code, #details, #exit_code, #hint

Instance Method Summary collapse

Methods inherited from Error

#to_envelope

Constructor Details

#initialize(k, z, verb: nil, holders: nil) ⇒ WriteForbidden

Returns a new instance of WriteForbidden.



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/textus/errors.rb', line 93

def initialize(k, z, verb: nil, holders: nil)
  holders_str =
    if holders && !holders.empty?
      holders.join(", ")
    else
      "no declared role"
    end
  details = { "key" => k, "zone" => z }
  details["verb"] = verb if verb
  details["holders"] = holders if holders
  super(
    "write_forbidden",
    "writing '#{k}' (zone '#{z}') needs capability '#{verb}'",
    details: details,
    hint: "held by: #{holders_str}; pass --as=<role>",
  )
end