Class: ApiBuilder::BaseRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/api_builder/renderer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ BaseRenderer

Returns a new instance of BaseRenderer.



78
79
80
# File 'lib/api_builder/renderer.rb', line 78

def initialize(*args, &block)
  instance_eval(&block)
end

Instance Attribute Details

#outObject (readonly)

Returns the value of attribute out.



76
77
78
# File 'lib/api_builder/renderer.rb', line 76

def out
  @out
end

Class Method Details

.render(format = "json", &block) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/api_builder/renderer.rb', line 63

def self.render(format = "json", &block)
  renderer = self.new(&block)
  
  case format
  when "json"
    renderer.out.to_json
  when "xml"
    renderer.out.to_xml
  else
    raise "unknown format #{format}"
  end
end

Instance Method Details

#array(&block) ⇒ Object



87
88
89
90
# File 'lib/api_builder/renderer.rb', line 87

def array(&block)
  raise "root element already defined" unless @out.nil?
  @out = ArrayRenderer.render(&block)
end

#element(*args, &block) ⇒ Object



82
83
84
85
# File 'lib/api_builder/renderer.rb', line 82

def element(*args, &block)
  raise "root element already defined" unless @out.nil?
  @out = ElementRenderer.render(*args, &block)
end