Module: Igniter::Contracts::Contractable::InstanceMethods

Defined in:
lib/igniter/contracts/contractable.rb

Instance Method Summary collapse

Instance Method Details

#failure(code:, message:, details: {}) ⇒ Object



156
157
158
159
160
161
162
163
# File 'lib/igniter/contracts/contractable.rb', line 156

def failure(code:, message:, details: {})
  Result.new(
    status: :failure,
    outputs: {},
    observations: current_observations,
    error: { code: code.to_sym, message: message, details: details }
  )
end

#observe(name, metadata: {}, &block) ⇒ Object

Raises:



145
146
147
148
149
150
# File 'lib/igniter/contracts/contractable.rb', line 145

def observe(name, metadata: {}, &block)
  raise Error, "observe requires a block" unless block
  raise Error, "observe can only be used during a contractable call" unless @__igniter_contractable_context

  @__igniter_contractable_context.observe(name, metadata: , &block)
end

#success(**outputs) ⇒ Object



152
153
154
# File 'lib/igniter/contracts/contractable.rb', line 152

def success(**outputs)
  Result.new(status: :success, outputs: outputs, observations: current_observations)
end