Class: MilkTea::Types::EnumBase
- Defined in:
- lib/milk_tea/core/types/types.rb
Instance Attribute Summary collapse
-
#backing_type ⇒ Object
readonly
Returns the value of attribute backing_type.
-
#external ⇒ Object
readonly
Returns the value of attribute external.
-
#hash ⇒ Object
readonly
Returns the value of attribute hash.
-
#module_name ⇒ Object
readonly
Returns the value of attribute module_name.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #define_member_values(member_values) ⇒ Object
- #define_members(backing_type, member_names) ⇒ Object
- #eql?(other) ⇒ Boolean (also: #==)
-
#initialize(name, module_name: nil, external: false) ⇒ EnumBase
constructor
A new instance of EnumBase.
- #member(name) ⇒ Object
- #member_value(name) ⇒ Object
- #members ⇒ Object
- #to_s ⇒ Object
Methods inherited from Base
#accept, #bitwise?, #boolean?, #children, #field_c_name, #float?, #integer?, #numeric?, #sendable?, #void?
Constructor Details
#initialize(name, module_name: nil, external: false) ⇒ EnumBase
Returns a new instance of EnumBase.
1224 1225 1226 1227 1228 1229 1230 1231 1232 |
# File 'lib/milk_tea/core/types/types.rb', line 1224 def initialize(name, module_name: nil, external: false) @name = name @module_name = module_name @external = external @backing_type = nil @members = {} @member_values = {} @hash = [self.class, name, module_name, external].hash end |
Instance Attribute Details
#backing_type ⇒ Object (readonly)
Returns the value of attribute backing_type.
1222 1223 1224 |
# File 'lib/milk_tea/core/types/types.rb', line 1222 def backing_type @backing_type end |
#external ⇒ Object (readonly)
Returns the value of attribute external.
1222 1223 1224 |
# File 'lib/milk_tea/core/types/types.rb', line 1222 def external @external end |
#hash ⇒ Object (readonly)
Returns the value of attribute hash.
1270 1271 1272 |
# File 'lib/milk_tea/core/types/types.rb', line 1270 def hash @hash end |
#module_name ⇒ Object (readonly)
Returns the value of attribute module_name.
1222 1223 1224 |
# File 'lib/milk_tea/core/types/types.rb', line 1222 def module_name @module_name end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
1222 1223 1224 |
# File 'lib/milk_tea/core/types/types.rb', line 1222 def name @name end |
Instance Method Details
#define_member_values(member_values) ⇒ Object
1243 1244 1245 1246 |
# File 'lib/milk_tea/core/types/types.rb', line 1243 def define_member_values(member_values) @member_values = member_values.freeze self end |
#define_members(backing_type, member_names) ⇒ Object
1234 1235 1236 1237 1238 1239 1240 1241 |
# File 'lib/milk_tea/core/types/types.rb', line 1234 def define_members(backing_type, member_names) @backing_type = backing_type @members = member_names.each_with_object({}) do |member_name, members| members[member_name] = self end.freeze @member_values = {} self end |
#eql?(other) ⇒ Boolean Also known as: ==
1261 1262 1263 1264 1265 1266 |
# File 'lib/milk_tea/core/types/types.rb', line 1261 def eql?(other) other.class == self.class && other.name == name && other.module_name == module_name && other.external == external end |
#member(name) ⇒ Object
1248 1249 1250 |
# File 'lib/milk_tea/core/types/types.rb', line 1248 def member(name) @members[name] end |
#member_value(name) ⇒ Object
1252 1253 1254 |
# File 'lib/milk_tea/core/types/types.rb', line 1252 def member_value(name) @member_values[name] end |
#members ⇒ Object
1256 1257 1258 |
# File 'lib/milk_tea/core/types/types.rb', line 1256 def members @members.keys end |
#to_s ⇒ Object
1272 1273 1274 |
# File 'lib/milk_tea/core/types/types.rb', line 1272 def to_s module_name ? "#{module_name}.#{name}" : name end |