module Raml::Bodies

Private Class Methods

included(base) click to toggle source

XXX - need this line here to trigger Yard to generate docs for the above attribute.

# File lib/raml/mixin/bodies.rb, line 10
def self.included(base)
  base.instance_eval do
    non_scalar_property :body
    children_by :bodies, :media_type , Body
  end
end

Private Instance Methods

parse_body(value) click to toggle source
# File lib/raml/mixin/bodies.rb, line 17
def parse_body(value)
  if value.is_a? Hash and value.keys.all? {|k| k.is_a? String and k =~ /.+\/.+/ }
    # If all keys looks like media types, its not a default media type body.
    validate_hash 'body', value, String, Hash
    value.map { |b_name, b_data| Body.new b_name, b_data, self }

  else
    # Its a default media type body.
    validate_hash 'body', value, String
    media_type = default_media_type
    raise InvalidMediaType, 'Body with no media type, but default media type has not been declared.' unless media_type
    Body.new media_type, value, self
  end
end