class GrapeSwagger::DocMethods::DataType

Constants

PRIMITIVE_MAPPINGS

Public Class Methods

call(value) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 7
def call(value)
  raw_data_type = value.is_a?(Hash) ? value[:type] : value
  raw_data_type ||= 'String'
  raw_data_type = parse_multi_type(raw_data_type)

  case raw_data_type.to_s
  when 'Boolean', 'Date', 'Integer', 'String', 'Float', 'JSON', 'Array'
    raw_data_type.to_s.downcase
  when 'Hash'
    'object'
  when 'Rack::Multipart::UploadedFile', 'File'
    'file'
  when 'Grape::API::Boolean'
    'boolean'
  when 'BigDecimal'
    'double'
  when 'DateTime', 'Time'
    'dateTime'
  when 'Numeric'
    'long'
  when 'Symbol'
    'string'
  else
    parse_entity_name(raw_data_type)
  end
end
collections() click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 90
def collections
  %w[csv ssv tsv pipes multi brackets]
end
mapping(value) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 86
def mapping(value)
  PRIMITIVE_MAPPINGS[value] || 'string'
end
parse_entity_name(model) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 50
def parse_entity_name(model)
  if model.respond_to?(:entity_name)
    model.entity_name
  elsif model.to_s.end_with?('::Entity', '::Entities')
    model.to_s.split('::')[0..-2].join('_')
  elsif model.to_s.start_with?('Entity::', 'Entities::', 'Representable::')
    model.to_s.split('::')[1..-1].join('_')
  else
    model.to_s.split('::').join('_')
  end
end
parse_multi_type(raw_data_type) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 34
def parse_multi_type(raw_data_type)
  case raw_data_type
  when /\A\[.*\]\z/
    type_as_string = raw_data_type.gsub(/[\[\s+\]]/, '').split(',').first
    begin
      Object.const_get(type_as_string)
    rescue NameError
      type_as_string
    end
  when Array
    raw_data_type.first
  else
    raw_data_type
  end
end
primitive?(type) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 66
def primitive?(type)
  primitives.include?(type.to_s.downcase)
end
primitives() click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 74
def primitives
  PRIMITIVE_MAPPINGS.keys.map(&:downcase)
end
query_array_primitive?(type) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 78
def query_array_primitive?(type)
  query_array_primitives.include?(type.to_s.downcase)
end
query_array_primitives() click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 82
def query_array_primitives
  primitives << 'string'
end
request_primitive?(type) click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 62
def request_primitive?(type)
  request_primitives.include?(type.to_s.downcase)
end
request_primitives() click to toggle source
# File lib/grape-swagger/doc_methods/data_type.rb, line 70
def request_primitives
  primitives + %w[object string boolean file json array]
end