RI
IO.methods - 1.methods - ''.methods - [].methods - Kernel.methods
а теперь делаю так
IO.methods(false)
Size: a a a
RI
RI
АШ
cd MyKlass
ls
w
ME
w
RI
a = BasicObject.new
a_snglt = class << a; self; end
a = = BasicObject.new
::Kernel.method(:singleton_class).unbind.bind_call(a) # bind_call в 2.7, bind(a).call в версиях ниже
m
A::B::C.??? -> A::B
(и я не про nesting)RI
VD
A::B::C.??? -> A::B
(и я не про nesting)m
ruby namespace
то там будет много релевантных ссылок, а если ruby class alias
то я не нахожу ничего из того что вы говорите. (максимум про keyword alias
, но он для методов)D = A::B::C
- объявление константы D в top level namespace. да, ей присваивается значение константы A::B::C
, но это уже не важноm
namespace
регулярно употребляется в доках, например в Module.const_get и Module.autoload и в статьях по ruby constant resolution
а вот про алиас класса я слышу впервые =\PP
ruby namespace
то там будет много релевантных ссылок, а если ruby class alias
то я не нахожу ничего из того что вы говорите. (максимум про keyword alias
, но он для методов)D = A::B::C
- объявление константы D в top level namespace. да, ей присваивается значение константы A::B::C
, но это уже не важноD
в этом случае и будет алиасом класса A::B::C
, ежели это правда класс.TL
m
m
A = Module.new
A::B = Module.new
C = A::B
C::D = Module.new
p C::D.name
> "A::B::D"
A::B
, ActiveSupport именно так считаетTL
CM
CM
m
a = 1можно еще книжку почитать: http://ruby-doc.com/docs/ProgrammingRuby/#UG
closure = ->(arg) { a = arg }
closure.call(3)
p a
> 3