ListToCsv.parse
You're seeing just the function
parse
, go back to ListToCsv module for more information.
Specs
parse([target()], ListToCsv.Option.t()) :: [[String.t()]]
Returns a list with header and body rows
Options
See ListToCsv.Option
for details.
:headers
- (list(string)) Optional.:Keys
- (list(Key.many())) Required. Keys can be atoms, strings, numbers, or functions.:length
- (list({Key.many(), length}) | nil) Optional. The length of the list can be variable, so if it is not fixed, the result value is not constant width.
Examples
iex> ListToCsv.parse([%{name: "bob"}], headers: ["name"], keys: [:name])
[["name"], ["bob"]]
iex> ListToCsv.parse([%{name: "bob"}], keys: [:name])
[["bob"]]
iex> ListToCsv.parse(
...> [
...> %{
...> name: "name1",
...> items: [
...> %{title: "title1", code: "code1"},
...> %{title: "title2", code: "code2"},
...> %{title: "title3", code: "code3"}
...> ]
...> },
...> %{
...> name: "name2",
...> items: [
...> %{title: "title4", code: "code4"},
...> %{title: "title5", code: "code5"},
...> %{title: "title6", code: "code6"},
...> %{title: "title7", code: "code7"},
...> %{title: "title8", code: "code8"}
...> ]
...> }
...> ],
...> headers: [
...> "名前",
...> "アイテム#名",
...> "アイテム#コード",
...> "item overflow?"
...> ],
...> keys: [
...> :name,
...> [:items, :N, :title],
...> [:items, :N, :code],
...> [:items, &(length(&1) > 4)]
...> ],
...> length: [items: 4]
...> )
[
["名前", "アイテム1名", "アイテム1コード", "アイテム2名", "アイテム2コード", "アイテム3名", "アイテム3コード", "アイテム4名", "アイテム4コード", "item overflow?"],
["name1", "title1", "code1", "title2", "code2", "title3", "code3", "", "", "false"],
["name2", "title4", "code4", "title5", "code5", "title6", "code6", "title7", "code7", "true"]
]
iex> ListToCsv.parse(
...> [
...> %{
...> name: "name1",
...> items: [
...> %{title: "title1", code: "code1"},
...> %{title: "title2", code: "code2"},
...> %{title: "title3", code: "code3"}
...> ]
...> },
...> %{
...> name: "name2",
...> items: [
...> %{title: "title4", code: "code4"},
...> %{title: "title5", code: "code5"},
...> %{title: "title6", code: "code6"},
...> %{title: "title7", code: "code7"},
...> %{title: "title8", code: "code8"}
...> ]
...> }
...> ],
...> keys: [
...> :name,
...> [:items, :N, :title],
...> [:items, :N, :code],
...> [:items, &(length(&1) > 4)]
...> ],
...> length: [items: 4]
...> )
[
["name1", "title1", "code1", "title2", "code2", "title3", "code3", "", "", "false"],
["name2", "title4", "code4", "title5", "code5", "title6", "code6", "title7", "code7", "true"]
]