Size: a a a

2019 December 20

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
в классе EmailValidator
источник

AI

Alex Ilizarov in pro.ruby
PasswordValidator.prepend(MyMixin)


Почти эквивалентно

class PasswordValidator
 include MyMixin
end
источник

AI

Alex Ilizarov in pro.ruby
Теперь в EmailValidator просто юзать .good_pass . Но ты скорее всего что то не то (архитектурно) делаешь мне кажется.
источник

k

kolas in pro.ruby
attr_accessor нужно запихать в блок included do..end
источник

k

kolas in pro.ruby
и потом в классе include Module
источник

AI

Alex Ilizarov in pro.ruby
kolas
и потом в классе include Module
Он расширяет дискурс
источник

AI

Alex Ilizarov in pro.ruby
это не его класс и он видимо не хочет его патчить
источник

k

kolas in pro.ruby
тогда extend на инстанс
источник

k

kolas in pro.ruby
extended do..end
источник

k

kolas in pro.ruby
хотя не, тогда может не сработать
источник

k

kolas in pro.ruby
можно через эту фичу https://ruby-doc.org/core-2.6.2/doc/syntax/refinements_rdoc.html
явно акксессор методы определить, без attr_accessor
источник

AI

Alex Ilizarov in pro.ruby
kolas
тогда extend на инстанс
ему недоступен инстанс
источник

AI

Alex Ilizarov in pro.ruby
рефайнмент ему тоже наверняка недоступен
источник

AI

Alex Ilizarov in pro.ruby
Еще раз - он расширяет "CMS" на рельсах, форумное двигло Discourse
источник

AI

Alex Ilizarov in pro.ruby
поэтому вариант с prepend поидее самый чистый.
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
почему прсото не создать третий класс синглетон

отработал PasswordValidator - все норм - записал значение в
GOODCLASS

отработал EmailValidator
прочитал значение из GOODCLASS сопоставил со своим и выполнил действие
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
Alex Ilizarov
Теперь в EmailValidator просто юзать .good_pass . Но ты скорее всего что то не то (архитектурно) делаешь мне кажется.
а что такое просто юзеать  .good_pass ?
источник

AI

Alex Ilizarov in pro.ruby
Aliaksandr ¯\_(ツ)_/¯
а что такое просто юзеать  .good_pass ?
это значит когда ты сделал
Someclass.prepend(MyMixin)
Значит твой миксин будет подмешан во все будущие инстансы класса, значит у него уже будет то что ты туда подмешал.
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
ок, а как обращаться к good_pass ?
источник

AI

Alex Ilizarov in pro.ruby
Aliaksandr ¯\_(ツ)_/¯
почему прсото не создать третий класс синглетон

отработал PasswordValidator - все норм - записал значение в
GOODCLASS

отработал EmailValidator
прочитал значение из GOODCLASS сопоставил со своим и выполнил действие
Потому что это выглядит еще кривее чем просто сделать миксины
источник