Files
mruby-mruby/mrbgems/mruby-method
Yukihiro "Matz" Matsumoto e471d37ca5 Separate meta-programming features to mruby-metaprog gem.
We assume meta-programming is less used in embedded environments.
We have moved following methods:

 * Kernel module
   global_variables, local_variables, singleton_class,
   instance_variables, instance_variables_defined?, instance_variable_get,
   instance_variable_set, methods, private_methods, public_methods,
   protected_methods, singleton_methods, define_singleton_methods

 * Module class
   class_variables, class_variables_defined?, class_variable_get,
   class_variable_set, remove_class_variable, included_modules,
   instance_methods, remove_method, method_removed, constants

 * Module class methods
   constants, nesting

Note:
Following meta-programming methods are kept in the core:

 * Module class
   alias_method, undef_method, ancestors, const_defined?, const_get,
   const_set, remove_const, method_defined?, define_method

 * Toplevel object
   define_method

`mruby-metaprog` gem is linked by default (specified in default.gembox).
When it is removed, it will save 40KB (stripped:8KB) on x86-64
environment last time I measured.
2018-08-30 22:30:36 +09:00
..
2017-12-18 10:54:37 +09:00
2017-12-18 11:10:10 +09:00

mruby-method

A implementetion of class Method and UnboundMethod for mruby

p Enumerable.instance_method(:find_all).source_location
#=> ["mruby/mruby/mrblib/enum.rb", 148]

Note

source_location method need this configuration in build_config.rb

MRuby::Build.new do |conf|
  enable_debug
end

Supported Methods

Kernel

  • Kernel#method
  • Kernel#singleton_method

Module

  • Module#instance_method

Method class

  • Method#name
  • Method#call
  • Method#super_method
  • Method#arity
  • Method#unbind
  • Method#[]
  • Method#owner
  • Method#receiver
  • Method#parameters
  • Method#source_location
  • Method#to_proc

UnboundMethod class

  • UnboundMethod#name
  • UnboundMethod#bind
  • UnboundMethod#super_method
  • UnboundMethod#arity
  • UnboundMethod#owner
  • UnboundMethod#parameters
  • UnboundMethod#source_location

See also