module Cadence::Concerns::Typed::ClassMethods

Attributes

input_class[R]

Public Instance Methods

execute_in_context(context, input) click to toggle source
Calls superclass method
# File lib/cadence/concerns/typed.rb, line 14
def execute_in_context(context, input)
  input = input_class[*input] if input_class

  super(context, input)
end
input(klass = nil, &block) click to toggle source
# File lib/cadence/concerns/typed.rb, line 20
def input(klass = nil, &block)
  if klass
    unless klass.is_a?(Dry::Types::Type)
      raise 'Unsupported input class. Use one of the provided Cadence::Types'
    end
    @input_class = klass
  else
    @input_class = generate_struct
    @input_class.instance_eval(&block)
  end
end

Private Instance Methods

generate_struct() click to toggle source
# File lib/cadence/concerns/typed.rb, line 34
def generate_struct
  Class.new(Dry::Struct::Value) { transform_keys(&:to_sym) }
end