Class: GrapeOAS::TypeResolvers::PrimitiveResolver
- Inherits:
-
Object
- Object
- GrapeOAS::TypeResolvers::PrimitiveResolver
- Extended by:
- Base
- Defined in:
- lib/grape_oas/type_resolvers/primitive_resolver.rb
Overview
Resolves primitive types like “Integer”, “String”, “Boolean”, “Float”.
This is the fallback resolver that handles basic Ruby types and their string representations. It’s registered last in the resolver chain.
Constant Summary collapse
- PRIMITIVES =
Known primitive type mappings
{ "String" => { type: Constants::SchemaTypes::STRING }, "Integer" => { type: Constants::SchemaTypes::INTEGER, format: "int32" }, "Float" => { type: Constants::SchemaTypes::NUMBER, format: "float" }, "BigDecimal" => { type: Constants::SchemaTypes::NUMBER, format: "double" }, "Numeric" => { type: Constants::SchemaTypes::NUMBER }, "Boolean" => { type: Constants::SchemaTypes::BOOLEAN }, "Grape::API::Boolean" => { type: Constants::SchemaTypes::BOOLEAN }, "TrueClass" => { type: Constants::SchemaTypes::BOOLEAN }, "FalseClass" => { type: Constants::SchemaTypes::BOOLEAN }, "Date" => { type: Constants::SchemaTypes::STRING, format: "date" }, "DateTime" => { type: Constants::SchemaTypes::STRING, format: "date-time" }, "Time" => { type: Constants::SchemaTypes::STRING, format: "date-time" }, "Hash" => { type: Constants::SchemaTypes::OBJECT }, "Array" => { type: Constants::SchemaTypes::ARRAY }, "File" => { type: Constants::SchemaTypes::FILE }, "Rack::Multipart::UploadedFile" => { type: Constants::SchemaTypes::FILE }, "Symbol" => { type: Constants::SchemaTypes::STRING } }.freeze
Class Method Summary collapse
Methods included from Base
build_schema, handles?, infer_format_from_name, primitive_to_schema_type, resolve_class
Class Method Details
.build_schema(type) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/grape_oas/type_resolvers/primitive_resolver.rb', line 40 def build_schema(type) type_str = normalize_type(type) # Check direct mapping first if PRIMITIVES.key?(type_str) mapping = PRIMITIVES[type_str] return ApiModel::Schema.new( type: mapping[:type], format: mapping[:format], ) end # Try to resolve and build schema resolved = resolve_class(type_str) if resolved build_from_resolved(resolved) else # Default fallback ApiModel::Schema.new(type: Constants::SchemaTypes::STRING) end end |
.handles?(type) ⇒ Boolean
35 36 37 38 |
# File 'lib/grape_oas/type_resolvers/primitive_resolver.rb', line 35 def handles?(type) type_str = normalize_type(type) PRIMITIVES.key?(type_str) || resolvable_to_primitive?(type) end |