Size: a a a

2018 November 25

RS

Roman Suleymanov in pro.elixir
текст контента не весь
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Roman Suleymanov
текст контента не весь
Не весь - потому что в консоли output обрезанный?
источник

RS

Roman Suleymanov in pro.elixir
только 4100 символов первых +  <> ...
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
iex(3)> {stream, 0}= System.cmd "elixir", ["-e", "IO.puts(String.duplicate(\"abc\", 10000))"], stderr_to_stdout: true
{"abca
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
bcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabca" <> ...,
0}
iex(4)> String.lstream
last/1      length/1
iex(4)> String.length(stream)
30001
источник

RS

Roman Suleymanov in pro.elixir
вот разница с IO.stream(:stdio, :line) и без
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Roman Suleymanov
только 4100 символов первых +  <> ...
Это терминал их обрезает, а в переменной они есть.
источник
2018 November 26

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Roman Suleymanov
вот разница с IO.stream(:stdio, :line) и без
Сделай в первом варианте IO.puts(content) - и увидешь её в полном обьёме. Это терминал при выдаче больших структур их упрощает, так-то в переменной полный вариант сохранён.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
И into здесь не нужен.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
  • :printable_limit - limits the number of bytes that are printed for
   strings and char lists. Defaults to 4096. If you don't want to limit the
   number of items to a particular number, use :infinity.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Строки в терминале по умолчанию 4096 принтятся
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
IO.inspect(content, printable_limit: :infinity) - Либо так можно посмотреть ещё
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Терминал использует inspect для того, чтобы напечатать структуру в терминале и чтобы не забить IO всякими огромными структурами - он их уменьшает в соответствии с лимитами - но он уменьшает только то, что выдаётся на консоль, а не то, что на самом деле в переменных сохраненно. И если нужно увидеть что там за ... <> стоит, то нужно использовать IO.inspect с другими опциями limit-а. Для всех опций, можно посмотреть h Inspect.Opts - там можно struct-ы в мапы превратить и так далее.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Парочка примеров:

iex(16)> IO.inspect ~D[2015-01-13], structs: false
%{__struct__: Date, calendar: Calendar.ISO, day: 13, month: 1, year: 2015}
~D[2015-01-13]

IO.inspect ~D[2015-01-13], structs: false, limit: 1
%{__struct__: Date, ...}
~D[2015-01-13]
источник

RS

Roman Suleymanov in pro.elixir
Dmitry спасибо, вариант с shell_encode и второй с сохранением работают
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Roman Suleymanov
Dmitry спасибо, вариант с shell_encode и второй с сохранением работают
Пожалуйста 😊
источник

RS

Roman Suleymanov in pro.elixir
а вот интересно, как-то можно вместо echo напрямую подсунуть в sassc как результат ввода

'echo "#{MyShell.shell_encode(content)}" | sassc -t compressed' |> :os.cmd
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Roman Suleymanov
а вот интересно, как-то можно вместо echo напрямую подсунуть в sassc как результат ввода

'echo "#{MyShell.shell_encode(content)}" | sassc -t compressed' |> :os.cmd
Это вопрос к sassc.
источник

RS

Roman Suleymanov in pro.elixir
он умеет так
sassc -s -t compressed -a

где -s как раз ждет ввода пользователя
источник

RS

Roman Suleymanov in pro.elixir
но как этот "ввод" подсунуть после выполнения sassc -s -t compressed -a
источник