Size: a a a

2021 March 26

A ß in pro.elixir
а зачем?
источник

B

Bogdan in pro.elixir
Зачем положить?
источник

DS

Dmitry Shpagin in pro.elixir
а из другого модуля нельзя получить атрибут первого модуля? а так да, тоже любопытно, в каких задачах это нужно
источник

AD

Anastasiya Dyachenko in pro.elixir
Dmitry Shpagin
а из другого модуля нельзя получить атрибут первого модуля? а так да, тоже любопытно, в каких задачах это нужно
можно функцию объявить)
источник

AD

Anastasiya Dyachenko in pro.elixir
Bogdan
Я хочу аттрибуты из одного модуля положить в другой через  Module.put_attribute/3, но другой модуль компилится раньше другого…как-то можно указать порядок в котором они будут компилироваться?
через using + before_compile разве что
источник

V

V in pro.elixir
Bogdan
Я хочу аттрибуты из одного модуля положить в другой через  Module.put_attribute/3, но другой модуль компилится раньше другого…как-то можно указать порядок в котором они будут компилироваться?
пахнет плохим дизайном и "вы не должны этого хотеть"
источник

V

V in pro.elixir
Dmitry Shpagin
а из другого модуля нельзя получить атрибут первого модуля? а так да, тоже любопытно, в каких задачах это нужно
Нельзя, атрибуты приватные
источник

DS

Dmitry Shpagin in pro.elixir
да я про концепцию, не пытаться одним модулем записать атрибуты другого. а пусть второй модуль данные для атрибута берет из того же места, откуда и первый
источник

V

V in pro.elixir
Атрибут - вообще компайл-тайм штука. Шарить их между модулями сложнее, чем ограничить область видимости конкретным модулем.
источник

B

Bogdan in pro.elixir
Короче, это поля для схемы. @required_fields […], их читает также генератор форм с соседнего модуля(вроде kaffy), чтобы обязательные поля отмечались только в модуле со схемой и шли дальше в changeset, и так же не было конфликтов с фронтом.

Можно объявить обычной функцией но у меня есть @derive к схеме, т.к данные в очередь уходят потом…а он почему-то функции читать не хочет.
источник

V

V in pro.elixir
Dmitry Shpagin
да я про концепцию, не пытаться одним модулем записать атрибуты другого. а пусть второй модуль данные для атрибута берет из того же места, откуда и первый
атрибуты хардкодятся же, если только они не макросами сделаны
источник

B

Bogdan in pro.elixir
Anastasiya Dyachenko
через using + before_compile разве что
я пробовал before_compile наверное не правильно готовил, там нужно каллбек еще в модуле прописывать?
источник

DS

Dmitry Shpagin in pro.elixir
V
атрибуты хардкодятся же, если только они не макросами сделаны
хардкод в общее место можно выставить, в виде функции, а в атрибуте делать вызов
@atr some_function()
источник

DS

Dmitry Shpagin in pro.elixir
но не уверен что с экто макросами это сработает
источник

AD

Anastasiya Dyachenko in pro.elixir
Bogdan
я пробовал before_compile наверное не правильно готовил, там нужно каллбек еще в модуле прописывать?
источник

B

Bogdan in pro.elixir
Ааа понял) вроде получилось спасибо
источник

B

Bogdan in pro.elixir
Хотя не фигня получается 😂
источник

B

Bogdan in pro.elixir
Он модуль полностью не компилет откуда надо атрибуты взять…
источник

B

Bogdan in pro.elixir
Можно объявить функции с полями -> потом отдать их в Module.register_attribute и скормить зареганные аттрибуты derive, тогда не надо будет парится что в каком порядке скомпилируется.
источник

B

Bogdan in pro.elixir
Тоже не получается объявить аттрибуты до функций…вообщем наверное будет проще @derive как-то перенести.
источник