class Rubydex::Declaration
Public Instance Methods
static VALUE rdxr_declaration_definitions(VALUE self) {
if (!rb_block_given_p()) {
return rb_enumeratorize_with_size(self, rb_str_new2("definitions"), 0, NULL, declaration_definitions_size);
}
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
void *iter = rdx_declaration_definitions_iter_new(graph, data->id);
VALUE args = rb_ary_new_from_args(2, self, ULL2NUM((uintptr_t)iter));
rb_ensure(declaration_definitions_yield, args, declaration_definitions_ensure, args);
return self;
}
Returns an enumerator that yields all definitions for this declaration lazily.
Source
static VALUE rdxr_declaration_name(VALUE self) {
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
const char *name = rdx_declaration_name(graph, data->id);
return rdxi_owned_c_string_to_ruby(name);
}
Returns the fully qualified declaration name.
Source
static VALUE rdxr_declaration_owner(VALUE self) {
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
const CDeclaration *decl = rdx_declaration_owner(graph, data->id);
if (decl == NULL) {
rb_raise(rb_eRuntimeError, "owner can never be nil for any declarations");
}
VALUE decl_class = rdxi_declaration_class_for_kind(decl->kind);
VALUE argv[] = {data->graph_obj, ULL2NUM(decl->id)};
free_c_declaration(decl);
return rb_class_new_instance(2, argv, decl_class);
}
Returns the owner declaration.
() → Enumerable[Reference]
Source
# File lib/rubydex/declaration.rb, line 18 def references raise NotImplementedError, "Subclasses must implement #references" end
@abstract
Source
static VALUE rdxr_declaration_unqualified_name(VALUE self) {
HandleData *data;
void *graph = rdxi_graph_from_handle(self, &data);
const char *name = rdx_declaration_unqualified_name(graph, data->id);
return rdxi_owned_c_string_to_ruby(name);
}
Returns the declaration name without namespace qualification.