diff options
| author | realtradam <[email protected]> | 2022-03-07 02:34:15 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2022-03-07 02:34:15 -0500 |
| commit | 779d9f17adf189b45c6be2a4b3d0959019c5ad03 (patch) | |
| tree | aa83f160569ae46dbf284f11123ea199a2a4505e /templates.rb | |
| parent | a96db26c3ca488ddb4093a5432399b4578a49bb7 (diff) | |
| download | FelBind-779d9f17adf189b45c6be2a4b3d0959019c5ad03.tar.gz FelBind-779d9f17adf189b45c6be2a4b3d0959019c5ad03.zip | |
file cleanup
Diffstat (limited to 'templates.rb')
| -rw-r--r-- | templates.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/templates.rb b/templates.rb index 2d987a6..6f753af 100644 --- a/templates.rb +++ b/templates.rb @@ -93,6 +93,46 @@ if (mrb_undef_p(kw_values[#{kwarg_iter}])) { end end + # make a function named like a ruby one would + def rubify_func_name(function) + func = function.underscore + if func.start_with? 'is_' + func = func.delete_prefix('is_') + '?' + end + func.delete_prefix('get_') + end + + # generate a return + def return_format(function, params) + func_rpart = function.rpartition(' ') + func_datatype = func_rpart.first + func_name = func_rpart.last + result = '' + if func_datatype == 'void' + if params.first == 'void' + result = "#{func_name}();\nreturn mrb_nil_value();" + else + result = "#{func_name}(" #);\nreturn mrb_nil_value();" + result += params.first.rpartition(' ').last + + params.drop(1).each do |param| + result += ", #{param.rpartition(' ').last}" + end + result += ");\nreturn mrb_nil_value();" + end + elsif params.first == 'void' + result = "return " + Tplt.to_mrb(func_datatype, "#{func_name}()") + ';' + else + temp_params = params.first.rpartition(' ').last + + params.drop(1).each do |param| + temp_params += ", #{param.rpartition(' ').last}" + end + result = 'return ' + Tplt.to_mrb(func_datatype, "#{func_name}(#{temp_params})") + ';' + end + result + end + end end |
