Class: Skit::JsonSchema::Definitions::EnumType
- Inherits:
-
Object
- Object
- Skit::JsonSchema::Definitions::EnumType
- Extended by:
- T::Sig
- Defined in:
- lib/skit/json_schema/definitions/enum_type.rb
Overview
Represents a T::Enum type for code generation
Instance Attribute Summary collapse
-
#class_name ⇒ Object
readonly
Returns the value of attribute class_name.
-
#nullable ⇒ Object
readonly
Returns the value of attribute nullable.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(class_name:, values:, nullable: false) ⇒ EnumType
constructor
A new instance of EnumType.
- #to_sorbet_type ⇒ Object
- #with_nullable ⇒ Object
Constructor Details
#initialize(class_name:, values:, nullable: false) ⇒ EnumType
Returns a new instance of EnumType.
27 28 29 30 31 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 27 def initialize(class_name:, values:, nullable: false) @class_name = class_name @values = values @nullable = nullable end |
Instance Attribute Details
#class_name ⇒ Object (readonly)
Returns the value of attribute class_name.
12 13 14 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 12 def class_name @class_name end |
#nullable ⇒ Object (readonly)
Returns the value of attribute nullable.
18 19 20 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 18 def nullable @nullable end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
15 16 17 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 15 def values @values end |
Class Method Details
.value_literal(value) ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 60 def self.value_literal(value) case value when String value.inspect when Integer, Float value.to_s end end |
.value_to_member_name(value) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 45 def self.value_to_member_name(value) case value when String result = NamingUtils.to_pascal_case(value) return "Empty" if result.empty? result = "Val#{result}" if result.match?(/\A\d/) result when Integer, Float NamingUtils.number_to_name(value) end end |
Instance Method Details
#to_sorbet_type ⇒ Object
34 35 36 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 34 def to_sorbet_type nullable ? "T.nilable(#{@class_name})" : @class_name end |
#with_nullable ⇒ Object
39 40 41 |
# File 'lib/skit/json_schema/definitions/enum_type.rb', line 39 def with_nullable EnumType.new(class_name: @class_name, values: @values, nullable: true) end |