Class: GenesisRuby::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/genesis_ruby/builder.rb

Overview

Builder handler

Constant Summary collapse

XML =

Builder XML

'xml'
JSON =

Builder JSON

'json'
FORM =

Builder FORM

'form'
GRAPHQL =

Builder GraphQL

'graphql'
PATCH =

Builder PATCH

'patch'

Instance Method Summary collapse

Constructor Details

#initialize(request_interface) ⇒ Builder

Initialize the Builder Interface based on the Request requirements



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/genesis_ruby/builder.rb', line 30

def initialize(request_interface)
  case request_interface
  when XML then @builder_context = Builders::Xml.new
  when FORM then @builder_context = Builders::Form.new
  when JSON then @builder_context = Builders::Json.new
  when GRAPHQL then @builder_context = Builders::Graphql.new
  when PATCH then @builder_context = Builders::Patch.new
  else
    raise GenesisRuby::BuilderError, 'Invalid Builder interface!'
  end
end

Instance Method Details

#documentObject

Get built document



43
44
45
# File 'lib/genesis_ruby/builder.rb', line 43

def document
  builder_context.output
end

#parse_structure(structure) ⇒ Object

Parse tree-structure into Builder document



48
49
50
# File 'lib/genesis_ruby/builder.rb', line 48

def parse_structure(structure)
  builder_context.populate_nodes(structure)
end