Class: Terminalwire::Client::Resource::Base

Inherits:
Resource::Base
  • Object
show all
Defined in:
lib/terminalwire/client/resource.rb

Overview

Dispatcher, security, and response macros for resources.

Direct Known Subclasses

Browser, Directory, EnvironmentVariable, File, STDIN, STDOUT

Instance Method Summary collapse

Constructor Details

#initialize(entitlement:) ⇒ Base

Returns a new instance of Base.



39
40
41
42
43
# File 'lib/terminalwire/client/resource.rb', line 39

def initialize(*, entitlement:, **)
  super(*, **)
  @entitlement = entitlement
  connect
end

Instance Method Details

#command(command, **parameters) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/terminalwire/client/resource.rb', line 45

def command(command, **parameters)
  begin
    if permit(command, **parameters)
      succeed self.public_send(command, **parameters)
    else
      fail "Client denied #{command}", command:, parameters:
    end
  rescue => e
    fail e.message, command:, parameters:
    raise
  end
end