class HaveAPI::OutputFormatter
Attributes
formatters[R]
Public Class Methods
register(klass)
click to toggle source
# File lib/haveapi/output_formatter.rb, line 9 def register(klass) @formatters ||= [] @formatters << klass end
Public Instance Methods
content_type()
click to toggle source
# File lib/haveapi/output_formatter.rb, line 42 def content_type @formatter.content_type end
error(msg)
click to toggle source
# File lib/haveapi/output_formatter.rb, line 38 def error(msg) @formatter.format(header(false, nil, msg)) end
format(status, response, message = nil, errors = nil, version: true)
click to toggle source
# File lib/haveapi/output_formatter.rb, line 34 def format(status, response, message = nil, errors = nil, version: true) @formatter.format(header(status, response, message, errors, version)) end
supports?(types)
click to toggle source
# File lib/haveapi/output_formatter.rb, line 15 def supports?(types) @formatter = nil if types.empty? return @formatter = self.class.formatters.first.new end types.each do |type| self.class.formatters.each do |f| if f.handle?(type) @formatter = f.new break end end end !@formatter.nil? end
Protected Instance Methods
header(status, response, message = nil, errors = nil, version = nil)
click to toggle source
# File lib/haveapi/output_formatter.rb, line 48 def header(status, response, message = nil, errors = nil, version = nil) ret = {} ret[:version] = HaveAPI::PROTOCOL_VERSION if version ret.update({ status:, response:, message:, errors: }) ret end