Class: DdbRuby::FifthEdition::TopLevelClass
- Inherits:
-
Dry::Struct
- Object
- Dry::Struct
- DdbRuby::FifthEdition::TopLevelClass
- Defined in:
- lib/ddb_ruby/fifth_edition/structs.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.from_dynamic!(d) ⇒ Object
2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 |
# File 'lib/ddb_ruby/fifth_edition/structs.rb', line 2327 def self.from_dynamic!(d) d = Types::Hash[d] new( id: d.fetch("id"), entity_type_id: d.fetch("entityTypeId"), level: d.fetch("level"), is_starting_class: d.fetch("isStartingClass"), hit_dice_used: d.fetch("hitDiceUsed"), definition_id: d.fetch("definitionId"), subclass_definition_id: d.fetch("subclassDefinitionId"), definition: SubclassDefinitionClass.from_dynamic!(d.fetch("definition")), subclass_definition: d.fetch("subclassDefinition") ? SubclassDefinitionClass.from_dynamic!(d.fetch("subclassDefinition")) : nil, class_features: d.fetch("classFeatures").map { |x| ClassClassFeature.from_dynamic!(x) }, ) end |
.from_json!(json) ⇒ Object
2343 2344 2345 |
# File 'lib/ddb_ruby/fifth_edition/structs.rb', line 2343 def self.from_json!(json) from_dynamic!(JSON.parse(json)) end |
Instance Method Details
#to_dynamic ⇒ Object
2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 |
# File 'lib/ddb_ruby/fifth_edition/structs.rb', line 2347 def to_dynamic { "id" => id, "entityTypeId" => entity_type_id, "level" => level, "isStartingClass" => is_starting_class, "hitDiceUsed" => hit_dice_used, "definitionId" => definition_id, "subclassDefinitionId" => subclass_definition_id, "definition" => definition.to_dynamic, "subclassDefinition" => subclass_definition&.to_dynamic, "classFeatures" => class_features.map { |x| x.to_dynamic }, } end |
#to_json(options = nil) ⇒ Object
2362 2363 2364 |
# File 'lib/ddb_ruby/fifth_edition/structs.rb', line 2362 def to_json( = nil) JSON.generate(to_dynamic, ) end |