module Swamp::Operation

Operations @example

class MyOperation
  include Swamp::Operation

  def _call
    input[:id]
  end

  input do
    required(:id) { int? }
  end
end

Attributes

input[R]

Public Class Methods

included(base) click to toggle source
# File lib/swamp/operation.rb, line 22
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

before_call!(**kwargs) click to toggle source
# File lib/swamp/operation.rb, line 33
def before_call!(**kwargs)
  @input = Hash[]
  return unless self.class.input_processor

  self.class.input_processor.call(kwargs).tap do |result|
    raise ValidationError, result.messages unless result.success?

    @input = result.output
  end
end
call(**kwargs) click to toggle source
# File lib/swamp/operation.rb, line 28
def call(**kwargs)
  before_call!(**kwargs)
  _call
end