Erlang terms formatter

This commit is contained in:
Daniil Fedotov 2016-11-10 12:19:47 +00:00
parent ca69dff530
commit 7dd74a3232
2 changed files with 35 additions and 0 deletions

View File

@ -23,6 +23,8 @@ defmodule RabbitMQ.CLI.Ctl.Commands.EvalCommand do
def switches(), do: []
def aliases(), do: []
def formatter(), do: RabbitMQ.CLI.Formatters.ErlTerms
def validate([], _) do
{:validation_failure, :not_enough_args}
end

View File

@ -0,0 +1,33 @@
## The contents of this file are subject to the Mozilla Public License
## Version 1.1 (the "License"); you may not use this file except in
## compliance with the License. You may obtain a copy of the License
## at http://www.mozilla.org/MPL/
##
## Software distributed under the License is distributed on an "AS IS"
## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
## the License for the specific language governing rights and
## limitations under the License.
##
## The Original Code is RabbitMQ.
##
## The Initial Developer of the Original Code is GoPivotal, Inc.
## Copyright (c) 2007-2016 Pivotal Software, Inc. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.Erlang do
@behaviour RabbitMQ.CLI.Formatters.FormatterBehaviour
def format_output(output, _) do
:io_lib.format("~p", [output])
|> to_string
end
def format_stream(stream, options) do
elements = Stream.map(stream, fn
({:error, msg}) ->
{:error, msg};
(element) ->
format_output(element, options)
end)
Stream.concat([["["], elements, ["]"]])
end
end