blambeau/qrb

View on GitHub
lib/finitio/json_schema/builtin_type.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Finitio
  module JsonSchema

    BUILTIN_MAPPING = {
      NilClass => "string", # jsonapi does not support null
      String => "string",
      Integer => "integer",
      Float => "number",
      Numeric => "number",
      TrueClass => "boolean",
      FalseClass => "boolean",
      Object => "object"
    }

  end
  class BuiltinType

    def to_json_schema(*args, &bl)
      mapped = JsonSchema::BUILTIN_MAPPING[ruby_type]
      if mapped
        { type: mapped }
      else
        raise JsonSchema::Error, "Unable to map #{ruby_type} to json-schema"
      end
    end

  end # class BuiltinType
end # module Finitio