class SchemaExtractor::Field
Constants
- TYPES
Attributes
default[R]
name[R]
nullable[R]
type[R]
Public Class Methods
new(name:, type:, nullable:, default: nil)
click to toggle source
# File lib/schema_extractor/field.rb, line 23 def initialize(name:, type:, nullable:, default: nil) @name = validate_name!(name) @type = validate_type!(type) @nullable = validate_nullable!(nullable) @default = validate_default!(default) end
Public Instance Methods
nullable?()
click to toggle source
# File lib/schema_extractor/field.rb, line 30 def nullable? nullable end
Private Instance Methods
validate_default!(default)
click to toggle source
# File lib/schema_extractor/field.rb, line 36 def validate_default!(default) default end
validate_name!(name)
click to toggle source
# File lib/schema_extractor/field.rb, line 40 def validate_name!(name) return name if name&.instance_of?(String) && !name.empty? raise InvalidFieldNameError, "#{name} is invalid field name." end
validate_nullable!(nullable)
click to toggle source
# File lib/schema_extractor/field.rb, line 45 def validate_nullable!(nullable) unless [true, false].include?(nullable) raise(InvalidNullableValueError, "#{nullable} is invalid for nullable value.") end nullable end
validate_type!(type)
click to toggle source
# File lib/schema_extractor/field.rb, line 52 def validate_type!(type) type = type&.to_sym return type if type && TYPES.include?(type) raise(InvalidFieldTypeError, "#{type} is invalid field type.") end