Class: HaveAPI::OutputFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/haveapi/output_formatter.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.formattersObject (readonly)

Returns the value of attribute formatters.



8
9
10
# File 'lib/haveapi/output_formatter.rb', line 8

def formatters
  @formatters
end

Class Method Details

.register(klass) ⇒ Object



10
11
12
13
# File 'lib/haveapi/output_formatter.rb', line 10

def register(klass)
  @formatters ||= []
  @formatters << klass
end

Instance Method Details

#content_typeObject



43
44
45
# File 'lib/haveapi/output_formatter.rb', line 43

def content_type
  @formatter.content_type
end

#error(msg) ⇒ Object



39
40
41
# File 'lib/haveapi/output_formatter.rb', line 39

def error(msg)
  @formatter.format(header(false, nil, msg))
end

#format(status, response, message = nil, errors = nil, version: true) ⇒ Object



35
36
37
# File 'lib/haveapi/output_formatter.rb', line 35

def format(status, response, message = nil, errors = nil, version: true)
  @formatter.format(header(status, response, message, errors, version))
end

#supports?(types) ⇒ Boolean

Returns:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/haveapi/output_formatter.rb', line 16

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? ? false : true
end