Class: Ortfodb::WorkMetadata

Inherits:
Dry::Struct
  • Object
show all
Defined in:
lib/ortfodb/database.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_dynamic!(d) ⇒ Object



355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
# File 'lib/ortfodb/database.rb', line 355

def self.from_dynamic!(d)
  d = Types::Hash[d]
  new(
    additional_metadata: Types::Hash[d.fetch("additionalMetadata")].map { |k, v| [k, Types::Any[v]] }.to_h,
    aliases:             d.fetch("aliases"),
    colors:              ColorPalette.from_dynamic!(d.fetch("colors")),
    database_metadata:   DatabaseMeta.from_dynamic!(d.fetch("databaseMetadata")),
    finished:            d.fetch("finished"),
    made_with:           d.fetch("madeWith"),
    page_background:     d.fetch("pageBackground"),
    private:             d.fetch("private"),
    started:             d.fetch("started"),
    tags:                d.fetch("tags"),
    thumbnail:           d.fetch("thumbnail"),
    title_style:         d.fetch("titleStyle"),
    wip:                 d.fetch("wip"),
  )
end

.from_json!(json) ⇒ Object



374
375
376
# File 'lib/ortfodb/database.rb', line 374

def self.from_json!(json)
  from_dynamic!(JSON.parse(json))
end

Instance Method Details

#to_dynamicObject



378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
# File 'lib/ortfodb/database.rb', line 378

def to_dynamic
  {
    "additionalMetadata" => ,
    "aliases"            => aliases,
    "colors"             => colors.to_dynamic,
    "databaseMetadata"   => .to_dynamic,
    "finished"           => finished,
    "madeWith"           => made_with,
    "pageBackground"     => page_background,
    "private"            => private,
    "started"            => started,
    "tags"               => tags,
    "thumbnail"          => thumbnail,
    "titleStyle"         => title_style,
    "wip"                => wip,
  }
end

#to_json(options = nil) ⇒ Object



396
397
398
# File 'lib/ortfodb/database.rb', line 396

def to_json(options = nil)
  JSON.generate(to_dynamic, options)
end