Skip to content

Instantly share code, notes, and snippets.

@mdaftab88
Forked from dmlaziuk/RubyObjectModel.md
Created April 4, 2021 18:56
Show Gist options
  • Save mdaftab88/a01d993de86c457df885e8a613e284b9 to your computer and use it in GitHub Desktop.
Save mdaftab88/a01d993de86c457df885e8a613e284b9 to your computer and use it in GitHub Desktop.
Ruby Object Model

Ruby Object Model

Ruby version 2.4.1

BasicObject

 > BasicObject.public_instance_methods(false)
 => [:!, :==, :!=, :__send__, :equal?, :instance_eval, :instance_exec, :__id__]
 > BasicObject.protected_instance_methods
 => []
 > BasicObject.private_instance_methods(false)
 => [:method_missing, :singleton_method_added, :singleton_method_removed,
 :singleton_method_undefined, :initialize]

Kernel

 > Kernel.class
 => Module
 > Kernel.public_instance_methods(false)
 => [:instance_of?, :kind_of?, :is_a?, :tap, :public_send, :public_method, :singleton_method,
 :remove_instance_variable, :define_singleton_method, :method, :instance_variable_set, :extend,
 :to_enum, :enum_for, :<=>, :===, :=~, :!~, :eql?, :respond_to?, :freeze, :inspect, :object_id,
 :send, :display, :to_s, :nil?, :hash, :class, :singleton_class, :clone, :dup, :itself, :taint,
 :tainted?, :untaint, :untrust, :untrusted?, :trust, :frozen?, :methods, :singleton_methods,
 :protected_methods, :private_methods, :public_methods, :instance_variable_get,
 :instance_variables, :instance_variable_defined?]
 > Kernel.protected_instance_methods
 => []
 > Kernel.private_instance_methods(false)
 => [:sprintf, :format, :Integer, :Float, :String, :Array, :Hash, :fail, :iterator?, :__method__,
 :catch, :__dir__, :loop, :global_variables, :throw, :block_given?, :raise, :__callee__, :eval,
 :Rational, :trace_var, :untrace_var, :at_exit, :Complex, :set_trace_func, :gem, :select,
 :caller, :caller_locations, :`, :test, :fork, :exit, :sleep, :respond_to_missing?, :load,
 :gem_original_require, :exec, :exit!, :syscall, :open, :printf, :print, :putc, :puts,
 :readline, :gets, :p, :readlines, :initialize_copy, :initialize_clone, :initialize_dup,
 :lambda, :rand, :srand, :proc, :system, :abort, :trap, :require, :require_relative,
 :autoload, :autoload?, :binding, :spawn, :local_variables, :warn]
 > Kernel.included_modules
 => []

Object

 > Object.public_instance_methods(false)
 => [] 
 > Object.protected_instance_methods
 => []
 > Object.private_instance_methods(false)
 => [:DelegateClass, :default_src_encoding, :irb_binding] 
 > Object.included_modules
 => [Kernel] 

Module

 > Module.public_instance_methods(false)
 => [:<=>, :include, :<=, :>=, :==, :===, :included_modules, :include?, :name, :ancestors,
 :instance_methods, :public_instance_methods, :protected_instance_methods, :private_instance_methods,
 :constants, :const_get, :const_set, :const_defined?, :class_variables, :remove_class_variable,
 :class_variable_get, :class_variable_set, :class_variable_defined?, :public_constant, :private_constant,
 :deprecate_constant, :singleton_class?, :module_exec, :class_exec, :freeze, :inspect, :const_missing,
 :class_eval, :method_defined?, :public_method_defined?, :prepend, :<, :>, :private_method_defined?,
 :protected_method_defined?, :public_class_method, :module_eval, :to_s, :private_class_method,
 :autoload, :autoload?, :instance_method, :public_instance_method]
 > Module.protected_instance_methods
 => []
 > Module.private_instance_methods(false)
 => [:refine, :module_function, :using, :attr, :attr_reader, :attr_writer, :attr_accessor,
 :remove_const, :extend_object, :prepend_features, :append_features, :remove_method, :method_added,
 :method_removed, :protected, :method_undefined, :undef_method, :public, :private, :initialize,
 :initialize_copy, :initialize_clone, :alias_method, :included, :extended, :prepended, :define_method]
 > Module.ancestors
 => [Module, Object, Kernel, BasicObject] 

Class

 > Class.public_instance_methods(false)
 => [:new, :allocate, :superclass]
 > Class.protected_instance_methods
 => []
 > Class.private_instance_methods(false)
 => [:initialize, :inherited]
 > Class.ancestors
 => [Class, Module, Object, Kernel, BasicObject]

main

 > self
 => main
 > self.class
 => Object
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment