Size: a a a

2019 March 25

ŹR

Źmićer Rubinštejn in pro.elixir
Это типо система плагинов
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Типа добавил в билдере
plug savable


А в модуле будет функция save
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А если

plug savable
plug presavable


То presavable обернет save
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если она есть
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
А зачем так сложно? И не интуитивно?
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
savable вызывает save
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Гипотетически такой плагин может появиться когда угодно в будущем и принести какие-угодно вещи в модуль
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вопрос в том, как вызвать неизвестную функцию, причём в том порядке в котором прописаны эти плаги
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Неизвестную заранее
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Можно было бы просто макросами запихивать в модуль функции, но вот как определять что функция уже есть, и декорировать её...
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А вот ещё - если нужно ещё один кейс функции допилить - тоже не понятно что делать...
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Я всё равно не понимаю, какую проблему должна решать эта система плагинов по сравнению с понятной и простой plug-ом. Пример видится слишком магическим ( и всё равно не понятно, чем лучше плага), что есть очень плохо для продуктивного кода.
источник

R

Rinsai in pro.elixir
По описанию пока больше use напоминает чем plug
источник

R

Rinsai in pro.elixir
Źmićer Rubinštejn
Вопрос в том, как вызвать неизвестную функцию, причём в том порядке в котором прописаны эти плаги
defmodule Test do
 def fun1(), do: 1
 IO.inspect(Module.definitions_in(__MODULE__, :def))

 def fun2(), do: 2
 IO.inspect(Module.definitions_in(__MODULE__, :def))
end

Compiling 1 file (.ex)
[fun1: 0]
[fun2: 0, fun1: 0]
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Чем плаг отличается от use
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Тем что у всех плагов одна и та же функция
источник

ŹR

Źmićer Rubinštejn in pro.elixir
call
источник

ŹR

Źmićer Rubinštejn in pro.elixir
И он один call запроавляет в другой
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вот я то же так хочу
источник

ŹR

Źmićer Rubinštejn in pro.elixir
крче забейте
источник