From 2f93334dc43f92f50196f1c39c7fb9ce40f4c562 Mon Sep 17 00:00:00 2001 From: _Tradam Date: Wed, 30 Mar 2022 21:35:12 -0400 Subject: Refactor --- rework.mdown | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 rework.mdown (limited to 'rework.mdown') diff --git a/rework.mdown b/rework.mdown new file mode 100644 index 0000000..60fa67e --- /dev/null +++ b/rework.mdown @@ -0,0 +1,62 @@ +# Refactoring Document + +## Types of functions +- C function wrap +- getter +- setter +- initializer + +### C function wrap +``` +static mrb_value +mrb_#{function_name}(mrb_state* mrb, mrb_value self) { + + #{initialize vars} + + #{unwrap kwarg/arg} + + #{kwargs.each do assignment} <-- this will need to unwrap structs + ^ also need to check if a default exists + + #{call method} + + #{wrap return struct} <-- only if return is new struct + #{return} +} +``` + +### Getter +``` +mrb_#{struct_name}_get_#{var}(mrb_state* mrb, mrb_value self) { + +#{unwrap struct} + +#{return value} <-- may need to wrap value if its a struct +} +``` + +### Setter +``` +mrb_#{struct_name}_set_#{var}(mrb_state* mrb, mrb_value self) { +#{initialize var} +#{get arg} +#{unwrap struct} +#{set value} +#{return the value from the struct} +} +``` + +### Initializer +``` +mrb_#{struct_name}_initialize(mrb_state* mrb, mrb_value self) { +#{initialize var} +#{unwrap kwarg/arg} + +#{kwargs.each do assignment} <-- this will need to unwrap structs +^ also need to check if a default exists + +#{initialize as mrb object} + +return self +} +``` -- cgit v1.2.3