class MatterCompiler::Payload
HTTP message payload Blueprint
AST node
base class for 'payload sections'
@abstract @attr parameters [Array] ignored @attr headers [Array<Headers>] array of HTTP header fields of the message or nil @attr body [String] HTTP-message body or nil @attr schema [String] HTTP-message body validation schema or nil
Attributes
body[RW]
headers[RW]
parameters[RW]
schema[RW]
Public Instance Methods
load_ast!(ast)
click to toggle source
Calls superclass method
MatterCompiler::NamedBlueprintNode#load_ast!
# File lib/matter_compiler/blueprint.rb, line 279 def load_ast!(ast) super(ast) @headers = Headers.new(ast[:headers]) unless ast[:headers].blank? @body = ast[:body] unless ast[:body].blank? @schema = ast[:schema] unless ast[:schema].blank? end
serialize()
click to toggle source
# File lib/matter_compiler/blueprint.rb, line 287 def serialize # Name is serialized in Payload successors buffer = "" unless @description.blank? buffer << "\n" @description.each_line { |line| buffer << "#{ONE_INDENTATION_LEVEL}#{line}" } buffer << "\n" end unless @headers.blank? buffer << @headers.serialize(1, [Headers::CONTENT_TYPE_HEADER_KEY]) end unless @body.blank? abbreviated_synax = (headers.blank? || headers.filter_collection([Headers::CONTENT_TYPE_HEADER_KEY]).blank?) \ & description.blank? \ & schema.blank? asset_indent_level = 2 unless abbreviated_synax asset_indent_level = 3 buffer << "#{ONE_INDENTATION_LEVEL}+ Body\n" end buffer << "\n" got_new_line = false @body.each_line do |line| asset_indent_level.times { buffer << ONE_INDENTATION_LEVEL } buffer << "#{line}" got_new_line = line[-1, 1] == "\n" end buffer << "\n" unless got_new_line buffer << "\n" end unless @schema.blank? buffer << "#{ONE_INDENTATION_LEVEL}+ Schema\n\n" got_new_line = false @schema.each_line do |line| 3.times { buffer << ONE_INDENTATION_LEVEL } buffer << "#{line}" got_new_line = line[-1, 1] == "\n" end buffer << "\n" unless got_new_line buffer << "\n" end buffer << "\n" if buffer.empty? # Separate empty payloads by a newline buffer end
serialize_definition(section, ignore_name = false)
click to toggle source
Serialize payaload's definition (lead-in)
@param section [String] section type keyword @param ignore_name [Boolean] object to ignore section name in serialization, false otherwise @return [String] buffer with serialized section definition
# File lib/matter_compiler/blueprint.rb, line 347 def serialize_definition(section, ignore_name = false) buffer = "" buffer << "+ #{section}" buffer << " #{@name}" unless ignore_name || @name.blank? unless @headers.blank? || @headers.content_type.blank? buffer << " (#{@headers.content_type})" end buffer << "\n" end