Size: a a a

2019 December 20

AI

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

PasswordValidator.class_eval do

   attr_accessor :good_pass
я хочу из

EmailValidator.class_eval do 


получить
good_pass
?
Создать геттер
источник

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

instance=PasswordValidator.new
       test1 = instance.good_pass
       Rails.logger.warn("#{test1}")


проверил, неправильно
источник

AI

Alex Ilizarov in pro.ruby
Aliaksandr ¯\_(ツ)_/¯
так написал щас буду пробовать

instance=PasswordValidator.new
       test1 = instance.good_pass
       Rails.logger.warn("#{test1}")


проверил, неправильно
С attr_acessor должно работать.
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
Aliaksandr ¯\_(ツ)_/¯
так написал щас буду пробовать

instance=PasswordValidator.new
       test1 = instance.good_pass
       Rails.logger.warn("#{test1}")


проверил, неправильно
источник

AI

Alex Ilizarov in pro.ruby
PasswordValidator.class_eval

Тебе зачем вообще? сделай нормальные классы
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
Alex Ilizarov
PasswordValidator.class_eval

Тебе зачем вообще? сделай нормальные классы
источник

AI

Alex Ilizarov in pro.ruby
жесть
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
а если я так сделаю переопределю класс то good_pass я могу получить в другом классе?
  class ::PasswordValidator
   attr_accessor :good_pass
   prepend InviteMailerEventExtension //тут все что было в PasswordValidator
 end

из доки - https://meta.discourse.org/t/tips-for-overriding-existing-discourse-methods-in-plugins/83389/2
источник

AI

Alex Ilizarov in pro.ruby
во избежание проблем с порядком загрузки лучше расширять существующий класс
источник

AI

Alex Ilizarov in pro.ruby
можно например сделать модуль-миксин и у нужного класса someclass.prepend(MyMixin)
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
Alex Ilizarov
можно например сделать модуль-миксин и у нужного класса someclass.prepend(MyMixin)
а выше я разве не миксин сделал?
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
ок, шас потестирую свой вариант
источник

AI

Alex Ilizarov in pro.ruby
Aliaksandr ¯\_(ツ)_/¯
а выше я разве не миксин сделал?
выше ты eval сделал )
источник

AI

Alex Ilizarov in pro.ruby
в принципе небольшая разница.
источник

AI

Alex Ilizarov in pro.ruby
Я не очень вдавался в метамагию рубей.
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
Alex Ilizarov
выше ты eval сделал )
вот выше

```
  class ::PasswordValidator
   attr_accessor :good_pass
   prepend InviteMailerEventExtension //тут все что было в PasswordValidator
 end

```
источник

AI

Alex Ilizarov in pro.ruby
attr_acessor наверное тоже в миксин?
источник

AI

Alex Ilizarov in pro.ruby
и тогда это будет так выглядеть:
PasswordValidator.prepend(MyMixin)
источник

Aliaksandr ¯\_(ツ)_/¯ in pro.ruby
Alex Ilizarov
и тогда это будет так выглядеть:
PasswordValidator.prepend(MyMixin)
а свойство как получить?
PasswordValidator.prepend(MyMixin)
.good_pass ?
источник

AI

Alex Ilizarov in pro.ruby
Aliaksandr ¯\_(ツ)_/¯
а свойство как получить?
PasswordValidator.prepend(MyMixin)
.good_pass ?
што? где ты его хочешь получить?
источник