Size: a a a

2019 November 26

ŹR

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

ŹR

Źmićer Rubinštejn in pro.elixir
Или в тесте - если повезет
источник
2019 November 27

DA

Denis Afonin in pro.elixir
Alexander Uljev
Может это какое-то наследие из Эрланга
Думаю да, наследие (а в самом Erlang-е Dialyzer вроде как только с 2004-го года). Попытка  внести в язык хоть какую-то, пусть даже и псевдо-, строгую типизацию.
И если никогда Dialyzer не запускать (кстати, лично меня всегда останавливала необходимость этих дополнительных действий, ибо инструмент-то для языка внешний), когда в iex-е смотришь ну например h apply, достаточно глянуть на @spec и всё сразу становится ясно, дальше можно не читать. Как минимум, это удобно.
источник

DA

Denis Afonin in pro.elixir
Хотя для сугубо своих (для внутреннего пользования) библиотек вместо выполнения по сути двойной работы в виде прописывания всех возможных кейсов в @typespec зачастую достаточно в @doc привести пару примеров использования в виде кода.
источник

AU

Alexander Uljev in pro.elixir
Вот и я про это
источник

DA

Denis Afonin in pro.elixir
А вот ещё пример:
iex(abillix@raznix.vnix)128> h :erlang.float_to_binary

                          :erlang.float_to_binary/1                            

 @spec float_to_binary(float) :: binary() when float: float()

Module was compiled without docs. Showing only specs.


                          :erlang.float_to_binary/2                            

 @spec float_to_binary(float, options) :: binary()
       when float: float(),
            options: [option],
            option:
              {:decimals, decimals :: 0..253}
              | {:scientific, decimals :: 0..249}
              | :compact

Module was compiled without docs. Showing only specs.
источник

DA

Denis Afonin in pro.elixir
И не надо на сайт за документацией лезть.
источник

AK

Andy Krasnov in pro.elixir
Źmićer Rubinštejn
Я вам говорю - это все жиды и массоны. А вовсе не наследние Эрланга, или там замысел Жозе
Чувствуется, ты что-то знаешь и не договариваешь... 🤣
источник

AK

Andy Krasnov in pro.elixir
не паблик, а рассадник теории заговора, блин
источник

PG

Pïg Grëënëst in pro.elixir
Elixir LS сам диалайзер дёргает
источник

RP

Roman Pushkov in pro.elixir
у нас без диалайзера наверное и кукухой можно было бы поехать
источник

DP

Dark Prague in pro.elixir
Привет всем, подскажите пожалуйста шлю обычный http post запрос через httpoison
HTTPoison.start()
   url = "http://localhost:3000/"
   HTTPoison.post("#{url}",
              {:file, file},
              [{"Authorization", ""}])

получаю ошибку
The following arguments were given to :hackney_bstr.to_binary/1:
   
       # 1
       #PID<0.188.0>
   
   (hackney) /deps/hackney/src/hackney_bstr.erl:35: :hackney_bstr.to_binary/1
источник

DP

Dark Prague in pro.elixir
файл получаю вот так
pdf_file = File.open("printing/#{file_name}_report_graph.pdf", [:write])
   {:ok, file} = pdf_file
   case HPDF.print_pdf!(my_url, timeout: 60_000, print_options: %{landscape: true}, after_load_delay: 10000) do
     {:ok, pdf_data} -> IO.binwrite(file, pdf_data)
   end
источник

МБ

Максим Барулин in pro.elixir
Dark Prague
файл получаю вот так
pdf_file = File.open("printing/#{file_name}_report_graph.pdf", [:write])
   {:ok, file} = pdf_file
   case HPDF.print_pdf!(my_url, timeout: 60_000, print_options: %{landscape: true}, after_load_delay: 10000) do
     {:ok, pdf_data} -> IO.binwrite(file, pdf_data)
   end
он путь до фала ждёт
источник

МБ

Максим Барулин in pro.elixir
HTTPoison.post("https://content.dropboxapi.com/2/files/upload",
              {:file, "local_file.txt"},
              [{"Authorization", "Bearer "}, ...])
источник

МБ

Максим Барулин in pro.elixir
либо через форму
HTTPoison.post!(
 url,
 {:multipart, [{:file, file}]},
 [],
 recv_timeout: 30000
)
источник

DP

Dark Prague in pro.elixir
Максим Барулин
либо через форму
HTTPoison.post!(
 url,
 {:multipart, [{:file, file}]},
 [],
 recv_timeout: 30000
)
Через форму получаю такую ошибку
** (FunctionClauseError) no function clause matching in :filename.do_flatten/2    
   
   The following arguments were given to :filename.do_flatten/2:
   
       # 1
       #PID<0.188.0>
   
       # 2
       []
   
   (stdlib) filename.erl:992: :filename.do_flatten/2
   (stdlib) filename.erl:190: :filename.basename/1
источник

МБ

Максим Барулин in pro.elixir
какое значение передаётся в качестве "local_file.txt" ?
источник

МБ

Максим Барулин in pro.elixir
файл существует?
источник

DP

Dark Prague in pro.elixir
Максим Барулин
какое значение передаётся в качестве "local_file.txt" ?
Мне надо указать путь до файла да?
источник