MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / extract_ruby_require_arg

Function extract_ruby_require_arg

internal/cbm/extract_imports.c:705–725  ·  view source on GitHub ↗

Extract string argument from a Ruby require/require_relative call.

Source from the content-addressed store, hash-verified

703
704// Extract string argument from a Ruby require/require_relative call.
705static char *extract_ruby_require_arg(CBMArena *a, TSNode node, const char *source) {
706 TSNode args = ts_node_child_by_field_name(node, TS_FIELD("arguments"));
707 if (ts_node_is_null(args)) {
708 if (ts_node_child_count(node) > SECOND_IDX) {
709 args = ts_node_child(node, SECOND_IDX);
710 }
711 }
712 if (ts_node_is_null(args)) {
713 return NULL;
714 }
715
716 uint32_t ac = ts_node_child_count(args);
717 for (uint32_t j = 0; j < ac; j++) {
718 TSNode c = ts_node_child(args, j);
719 const char *ck = ts_node_type(c);
720 if (strcmp(ck, "string") == 0 || strcmp(ck, "string_literal") == 0) {
721 return strip_quotes(a, cbm_node_text(a, c, source));
722 }
723 }
724 return strip_quotes(a, cbm_node_text(a, args, source));
725}
726
727static void parse_ruby_imports(CBMExtractCtx *ctx) {
728 CBMArena *a = ctx->arena;

Callers 1

parse_ruby_importsFunction · 0.85

Calls 2

cbm_node_textFunction · 0.85
strip_quotesFunction · 0.70

Tested by

no test coverage detected