class Aws::Rest::Response::Body
def apply(body, data)
-
data
(Hash, Struct
) -- -
body
(IO
) --
def apply(body, data) if event_stream? data[@rules[:payload]] = parse_eventstream(body) elsif streaming? data[@rules[:payload]] = body elsif @rules[:payload] data[@rules[:payload]] = parse(body.read, @rules[:payload_member]) elsif !@rules.shape.member_names.empty? parse(body.read, @rules, data) end end
def event_stream?
def event_stream? @rules[:payload] && @rules[:payload_member].eventstream end
def initialize(parser_class, rules)
-
rules
(Seahorse::Model::ShapeRef
) -- -
parser_class
(Class
) --
def initialize(parser_class, rules) @parser_class = parser_class @rules = rules end
def parse(body, rules, target = nil)
def parse(body, rules, target = nil) @parser_class.new(rules).parse(body, target) if body.size > 0 end
def parse_eventstream(body)
def parse_eventstream(body) # body contains an array of parsed event when they arrive @rules[:payload_member].shape.struct_class.new do |payload| body.each { |event| payload << event } end end
def streaming?
def streaming? @rules[:payload] && ( BlobShape === @rules[:payload_member].shape || StringShape === @rules[:payload_member].shape ) end