class GrapeSwagger::DocMethods::FormatData

Public Class Methods

add_array(parameter, related_parameters) click to toggle source
# File lib/grape-swagger/doc_methods/format_data.rb, line 36
def add_array(parameter, related_parameters)
  related_parameters.each do |p|
    next if p.key?(:items)

    p_type = p[:type] == 'array' ? 'string' : p[:type]
    p[:items] = { type: p_type, format: p[:format], enum: p[:enum], is_array: p[:is_array] }
    p[:items].compact!
    p[:type] = 'array'
    p[:is_array] = parameter[:is_array]
    p.delete(:format)
    p.delete(:enum)
    p.compact!
  end
end
add_braces(parameter, related_parameters) click to toggle source
# File lib/grape-swagger/doc_methods/format_data.rb, line 31
def add_braces(parameter, related_parameters)
  param_name = parameter[:name].gsub(/\A(.*)\[\]\z/, '\1')
  related_parameters.each { |p| p[:name] = p[:name].gsub(param_name, "#{param_name}[]") }
end
move_down(parameter, related_parameters) click to toggle source
# File lib/grape-swagger/doc_methods/format_data.rb, line 17
def move_down(parameter, related_parameters)
  case parameter[:type]
  when 'array'
    add_array(parameter, related_parameters)
    unless related_parameters.blank?
      add_braces(parameter, related_parameters) if parameter[:name].match?(/\A.*\[\]\z/)
      return true
    end
  when 'object'
    return true
  end
  false
end
to_format(parameters) click to toggle source
# File lib/grape-swagger/doc_methods/format_data.rb, line 7
def to_format(parameters)
  parameters.reject { |parameter| parameter[:in] == 'body' }.each do |b|
    related_parameters = parameters.select do |p|
      p[:name] != b[:name] && p[:name].to_s.start_with?("#{b[:name].to_s.gsub(/\[\]\z/, '')}[")
    end
    parameters.reject! { |p| p[:name] == b[:name] } if move_down(b, related_parameters)
  end
  parameters
end