Size: a a a

2020 August 28

E

Eugene in RubyRush
например, есть class variable (@@...)
источник

В

Владислав in RubyRush
нет, это инстанс переменные . не то
источник

E

Eugene in RubyRush
class Tracker
 @@names = []

 def self.names
   @@names
 end

 def initialize(name)
   @name = name
   @@names << name
 end
end
источник

E

Eugene in RubyRush
2.6.3 :013 > Tracker.new("Vasya")
=> #<Tracker:0x00007fffb9525bc8 @name="Vasya">
2.6.3 :014 > Tracker.new("Petya")
=> #<Tracker:0x00007fffb9528cb0 @name="Petya">
2.6.3 :015 > Tracker.names
=> ["Vasya", "Petya"]
источник

В

Владислав in RubyRush
по второй ссылке близко, но там только как, я понял колличество их, которые выводятся, как "имя в памяти"
источник

Э

Эдем in RubyRush
А, типа user1 = User.new, user2 = User.new и нужно получить названия: user1, user2
источник

E

Eugene in RubyRush
Эдем
А, типа user1 = User.new, user2 = User.new и нужно получить названия: user1, user2
хорошая задача для упоротого собеседования
источник

В

Владислав in RubyRush
Эдем
А, типа user1 = User.new, user2 = User.new и нужно получить названия: user1, user2
genius, верно Эдем, спасибо))
источник

D

Denis in RubyRush
Зачем это?
источник

E

Eugene in RubyRush
да уж, Эдем, конечно, ближе к народу :))
источник

Э

Эдем in RubyRush
По чтению мыслей скоро буду, как Вадик
источник

D

Denis in RubyRush
Эдем
По чтению мыслей скоро буду, как Вадик
Ок, тогда ты знаешь наверное ответ, для чего это? =)
источник

Э

Эдем in RubyRush
Для решения определённых задач. Очевидно же
источник

D

Denis in RubyRush
А, ну да
источник

Э

Эдем in RubyRush
Владислав какая конечная цель?
источник

Э

Эдем in RubyRush
Ну т.е. можно всё это собрать, но нужно ли
источник

E

Eugene in RubyRush
я сделаль
источник

E

Eugene in RubyRush
require 'debug_inspector'

class User
 def self.variable_names
   RubyVM::DebugInspector.open do |inspector|
     variables = eval("local_variables", inspector.frame_binding(2))
     variables.map!(&:to_s)
     variables.select do |x|
       eval(x, inspector.frame_binding(2)).is_a?(self)
     end
   end
 end
end

user1 = User.new
user2 = User.new

pp User.variable_names
источник

E

Eugene in RubyRush
Eugene
хорошая задача для упоротого собеседования
не цитируйте меня, если возьмёте на вооружение
источник

Э

Эдем in RubyRush
Надо добавить, что в практической работе лучше такое не использовать :)
источник