def internal_ruby_extension(
        name,
        extension,
        deps = [],
        **kwargs):
    """Bazel rule to wrap up a generated ruby extension.

    NOTE: the rule is only an internal workaround. The interface may change and
    the rule may be removed when everything is properly "Bazelified".

    Args:
      name: the name of the target.
      extension: the path of the extension file.
      deps: extra dependencies to add.
      **kwargs: extra arguments to forward to the genrule.
    """


    native.genrule(
        name = name,
        srcs = deps + [
            "Rakefile",
            ":srcs",
            ":test_ruby_protos",
            ":tests",
            "@utf8_range//:utf8_range_srcs",
        ],
        tags = ["manual"],
        outs = [extension],
        cmd = "pushd `dirname $(location Rakefile)`\n" +
              "BAZEL=true rake\n" +
              "popd\n" +
              "cp `dirname $(location Rakefile)`/%s $(OUTS)\n" % extension,
        **kwargs,
    )
