value_t rb_glob(String *pattern) { auto array = new (collector) Array; Platform::wrap([&] { std::vector<CharArray> segments; CharArray path = File::normalize_path(pattern->string); path.split([&](const CharArray &part) { segments.push_back(part); }, CharArray("/")); if(File::absolute_path(path)) glob(array, segments, 1, segments[0].size() ? segments[0] : "/"); else glob(array, segments, 0, ""); }); return array; }