class Protobuf::Message

def [](tag_or_name)

def [](tag_or_name)
  if field = get_field(tag_or_name) || get_ext_field(tag_or_name)
    __send__(field.name)
  else
    raise NoMethodError, "No such field: #{tag_or_name.inspect}"
  end
end