class WisperNext::CastToOptions

@api private

Public Class Methods

call(arguments) click to toggle source

@example

def call(*args)
  CastToOptions.call(args)
end

call(:strict, :async: false) # => { strict: true, async: false }
# File lib/wisper_next/cast_to_options.rb, line 12
def self.call(arguments)
  arguments.reduce({}) do |memo, item|
    case item
    when Symbol
      memo[item] = true
    when Hash
      memo.merge!(item)
    else
      raise(ArgumentError, "Unsupported option: #{item.inspect} (#{item.class.name})")
    end

    memo
  end
end