/* Function: rm_get_optional_arguments Purpose: Collect optional method arguments via Magick::OptionalMethodArguments Notes: Creates an instance of Magick::OptionalMethodArguments, then yields to a block in the context of the instance. */ void rm_get_optional_arguments(VALUE img) { volatile VALUE OptionalMethodArguments; volatile VALUE opt_args; VALUE argv[1]; // opt_args = Magick::OptionalMethodArguments.new(img) // opt_args.instance_eval { block } if (rb_block_given_p()) { OptionalMethodArguments = rb_const_get_from(Module_Magick, rb_intern("OptionalMethodArguments")); argv[0] = img; opt_args = rb_class_new_instance(1, argv, OptionalMethodArguments); (void) rb_obj_instance_eval(0, NULL, opt_args); } return; }
static VALUE module_specs_const_get_from(VALUE self, VALUE klass, VALUE val) { return rb_const_get_from(klass, SYM2ID(val)); }