Module: Grape::Formatter

Extended by:
ActiveSupport::Autoload, Util::Registrable
Defined in:
lib/grape.rb,
lib/grape/formatter.rb,
lib/grape/formatter/txt.rb,
lib/grape/formatter/xml.rb,
lib/grape/formatter/json.rb,
lib/grape/formatter/serializable_hash.rb

Defined Under Namespace

Modules: Json, SerializableHash, Txt, Xml

Class Method Summary collapse

Methods included from Util::Registrable

default_elements, register

Class Method Details

.builtin_formattersObject



8
9
10
11
12
13
14
15
16
# File 'lib/grape/formatter.rb', line 8

def builtin_formatters
  @builtin_formatters ||= {
    json: Grape::Formatter::Json,
    jsonapi: Grape::Formatter::Json,
    serializable_hash: Grape::Formatter::SerializableHash,
    txt: Grape::Formatter::Txt,
    xml: Grape::Formatter::Xml
  }
end

.formatter_for(api_format, **options) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/grape/formatter.rb', line 22

def formatter_for(api_format, **options)
  spec = formatters(**options)[api_format]
  case spec
  when nil
    ->(obj, _env) { obj }
  when Symbol
    method(spec)
  else
    spec
  end
end

.formatters(**options) ⇒ Object



18
19
20
# File 'lib/grape/formatter.rb', line 18

def formatters(**options)
  builtin_formatters.merge(default_elements).merge!(options[:formatters] || {})
end