Module: Actor::Destructure

Defined in:
lib/actor/destructure.rb

Constant Summary collapse

Error =
Class.new StandardError

Class Method Summary collapse

Class Method Details

.call(primary_return_value, include = nil, **values) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/actor/destructure.rb', line 3

def self.call primary_return_value, include=nil, **values
  include = Array(include)

  if include.empty?
    primary_return_value
  else
    return_values = include.map do |return_value_name|
      begin
        values.fetch return_value_name
      rescue KeyError
        raise Error, "Invalid return value to include `#{return_value_name.inspect}'"
      end
    end

    return primary_return_value, *return_values
  end
end