Size: a a a

Saint P Ruby Community

2020 January 30

EK

Emir Karşıyakalı in Saint P Ruby Community
I see. Ivan also told me. If something I can help I am always here 🙂
источник
2020 February 01

w

wi11son in Saint P Ruby Community
народ, а что думаете о методе?

def self.new(*)
 super.tap { some_additional_setup }
end
источник

v

vizvamitra in Saint P Ruby Community
очень странно что понадобилось делать сетап не внутри объекта, а снаружи, но определять этот сетап при этом внутри
источник

v

vizvamitra in Saint P Ruby Community
возможно этот сетап (а я так полагаю, что это даже не сетап объекта, а колбэк просто, раз лямбда без параметра) — ответственность кого-то другого
источник

v

vizvamitra in Saint P Ruby Community
конструкция непривычная, приходится напрячь мозги чтобы понять, что происходит. это тоже нехорошо
источник

v

vizvamitra in Saint P Ruby Community
интересно, почему понадобилось делать именно так
источник

v

vizvamitra in Saint P Ruby Community
это какой-то манки-патч?
источник

w

wi11son in Saint P Ruby Community
я смотрю, каким образом можно что-то заинжектить в объект, при этом предоставляя пользователю писать что угодно в инишалайз, и при этом не заставлять его делать super
источник

RI

Rustam Ibragimov in Saint P Ruby Community
wi11son
народ, а что думаете о методе?

def self.new(*)
 super.tap { some_additional_setup }
end
я так когдато делал в смарткоре своем, это изи провернуть, но могу написать ближе к обеду или вечру развернуто сказать развернуто, но я могу кинуть в сорцы :)

можно глянуть сэмплы в сорцах
0exp/smart_core/tree/master/lib/smart_core/initializer (в InstanceBuilder идеи инстанцирования)

(там можно писать свой инишиалайз, там есть способ экстенда этого инишиалайза (extend_initialization_flow), без использования super для разработчика)
источник

w

wi11son in Saint P Ruby Community
Ок, гляну
источник

RI

Rustam Ibragimov in Saint P Ruby Community
по факту - перхватываешь нью, делегируешь своему отдельному инстанс-билдеру, из него уже можешь вызвать оригинальный инишиалайз через сэнд, и можешь экстенды где-нибудь методами на классе задефайнить, а вызвать как а аналоге выше у тебя - заевалить на обьекте :) 👌🏻
источник

AG

Alex G in Saint P Ruby Community
@wi11son ⬆️
источник

AG

Alex G in Saint P Ruby Community
источник

AG

Alex G in Saint P Ruby Community
источник

AG

Alex G in Saint P Ruby Community
$ ruby initialize.rb
Initializer#initialize
Klass#initialize
источник

RI

Rustam Ibragimov in Saint P Ruby Community
я отнаследуюсь от твоего класса со своим инишиалайз - и все пропало
источник

RI

Rustam Ibragimov in Saint P Ruby Community
тут нужно поглубже перехватывать :)
источник

AG

Alex G in Saint P Ruby Community
$ ruby initialize.rb
Initializer#initialize
Animal#initialize
Initializer#initialize
Dog#initialize
источник

AG

Alex G in Saint P Ruby Community
@exfive я просто мимо компа бегаю - идею показываю, с чего бы я начинал
источник

w

wi11son in Saint P Ruby Community
да, тожое планировал использовать inherited
источник