class Zapata::Predictor::Args

Public Class Methods

choose_values(raw_args) click to toggle source
# File lib/zapata/predictor/args.rb, line 15
def choose_values(raw_args)
  case raw_args.type
  when :array
    array = raw_args.value.map do |arg|
      Value.new(arg.value, arg).choose.to_raw
    end

    Primitive::Raw.new(:array, array)
  when :hash
    hash = raw_args.value.each_with_object({}) do |(rkey, rval), obj|
      key = Value.new(rkey.value, rkey).choose.to_raw
      val = Value.new(rval.value, rval).choose.to_raw
      obj[key] = val
    end

    Primitive::Raw.new(:hash, hash)
  when :int
    Primitive::Raw.new(:int, raw_args.value)
  when :missing
    Primitive::Raw.new(:missing, raw_args.value)
  when :nil
    Primitive::Nil.new.to_raw
  else
    raise 'Not yet implemented'
  end
end
literal(args_node) click to toggle source
# File lib/zapata/predictor/args.rb, line 7
def literal(args_node)
  return unless args_node

  raw_args = Diver.dive(args_node).to_raw
  chosen_args = choose_values(raw_args)
  Printer.print(chosen_args, args: true)
end