class ActiveGraphql::Client::Actions::Action::FormatOutputs

converts ruby object in to grapqhl output string

Attributes

outputs[R]

Public Class Methods

new(outputs) click to toggle source
# File lib/active_graphql/client/actions/action/format_outputs.rb, line 9
def initialize(outputs)
  @outputs = outputs
end

Public Instance Methods

call() click to toggle source
# File lib/active_graphql/client/actions/action/format_outputs.rb, line 13
def call
  Array.wrap(outputs).map { |it| formatted(it) }.join(', ')
end

Private Instance Methods

formatted(attribute) click to toggle source
# File lib/active_graphql/client/actions/action/format_outputs.rb, line 21
def formatted(attribute) # rubocop:disable Metrics/MethodLength
  case attribute
  when Hash
    attribute.map { |key, value| "#{key} { #{formatted(value)} }" }.join(', ')
  when Symbol, String
    attribute.to_s
  when Array
    attribute.map { |it| formatted(it) }.join(', ')
  else
    raise(
      ActiveGraphql::Client::Actions::WrongTypeError,
      "Unsupported attribute type: #{attribute.inspect}:#{attribute.class}"
    )
  end
end