You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: field.rb
    path of file: ./repos/activecube/lib/activecube
    
    the code of the file until where you have to start completion: module Activecube
  class Field
    attr_accessor :name, :definition

    def self.build(name, arg)
      if arg.is_a? String
        Field.new name, arg

    
    def self.build(name, arg)
      if arg.is_a? String
        Field.new name, arg
      elsif arg.is_a? Hash
        Field.new name, arg.symbolize_keys
      elsif arg.is_a?(Class) && arg < Field
        arg.new name
      else
        raise Activecube::InputArgumentError, "Unexpected field #{name} definition with #{arg.class.name}"
      end