ortfodb 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f25b4793b5193e4ad8009bd31b30932bd64e3495b0e04a81f85ef4c164e27e3
4
- data.tar.gz: 4d91389ec40ec4840f93c4ffbf45475bad4ea3fd29660f788312bc42154b3821
3
+ metadata.gz: dfdb5e23f5915036479e7ddb21929c3612369d72491679f435387dafe64e0332
4
+ data.tar.gz: 1bd20725c89cebcba8be97922d0ec994506efaa4d77dae3a11c1915b741ec903
5
5
  SHA512:
6
- metadata.gz: 8d9025810554c0cbd45ada3bd97ed5559631fda3d19b0ca81efc4992e4f9006c3293362a6bb82c4c999baeb051238713c66041c77539babbc36c15bb86015a80
7
- data.tar.gz: ea901b1e430836c366997b2729f003a3d463cae5535b671bdeab0b056a61e8bff8a8342c905b8aecdaafac515c63836da693f7be107326e2f15063287fb7bab3
6
+ metadata.gz: 5cdc18ef72d256b60d0485c0688d8fc6536eaa7a4722e6f909cff82c6e13fa6dd872cf266ec5f7182324f4a2f824b269fdf68ebc6887b1780bd3a912c081ce19
7
+ data.tar.gz: 7932d8d198277da4cecd808053f7b6c3405681309472a3c49ca3f1bc2fa8ab8626c67ce26faa0c9936049b8e646ea11fd793d13a65f7cc6832d868d4d8eee716
@@ -198,7 +198,6 @@ module Ortfodb
198
198
 
199
199
  # Configuration represents what the ortfodb.yaml configuration file describes.
200
200
  class Configuration < Dry::Struct
201
- attribute :build_metadata_file, Types::String.optional
202
201
 
203
202
  # Exporter-specific configuration. Maps exporter names to their configuration.
204
203
  attribute :exporters, Types::Hash.meta(of: Types::Hash.meta(of: Types::Any)).optional
@@ -218,7 +217,6 @@ module Ortfodb
218
217
  def self.from_dynamic!(d)
219
218
  d = Types::Hash[d]
220
219
  new(
221
- build_metadata_file: d["build metadata file"],
222
220
  exporters: Types::Hash.optional[d["exporters"]]&.map { |k, v| [k, Types::Hash[v].map { |k, v| [k, Types::Any[v]] }.to_h] }&.to_h,
223
221
  extract_colors: d["extract colors"] ? ExtractColorsConfiguration.from_dynamic!(d["extract colors"]) : nil,
224
222
  make_gifs: d["make gifs"] ? MakeGIFSConfiguration.from_dynamic!(d["make gifs"]) : nil,
@@ -237,7 +235,6 @@ module Ortfodb
237
235
 
238
236
  def to_dynamic
239
237
  {
240
- "build metadata file" => build_metadata_file,
241
238
  "exporters" => exporters,
242
239
  "extract colors" => extract_colors&.to_dynamic,
243
240
  "make gifs" => make_gifs&.to_dynamic,
@@ -184,6 +184,11 @@ module Ortfodb
184
184
  # in seconds
185
185
  attribute :duration, Types::Double
186
186
 
187
+ # Hash of the media file, used for caching purposes. Could also serve as an integrity
188
+ # check.
189
+ # The value is the MD5 hash, base64-encoded.
190
+ attribute :content_block_hash, Types::String
191
+
187
192
  attribute :has_sound, Types::Bool
188
193
  attribute :id, Types::String
189
194
  attribute :index, Types::Integer
@@ -214,6 +219,7 @@ module Ortfodb
214
219
  dimensions: ImageDimensions.from_dynamic!(d.fetch("dimensions")),
215
220
  dist_source: d.fetch("distSource"),
216
221
  duration: d.fetch("duration"),
222
+ content_block_hash: d.fetch("hash"),
217
223
  has_sound: d.fetch("hasSound"),
218
224
  id: d.fetch("id"),
219
225
  index: d.fetch("index"),
@@ -246,6 +252,7 @@ module Ortfodb
246
252
  "dimensions" => dimensions.to_dynamic,
247
253
  "distSource" => dist_source,
248
254
  "duration" => duration,
255
+ "hash" => content_block_hash,
249
256
  "hasSound" => has_sound,
250
257
  "id" => id,
251
258
  "index" => index,
@@ -267,18 +274,20 @@ module Ortfodb
267
274
  end
268
275
 
269
276
  class LocalizedContent < Dry::Struct
270
- attribute :blocks, Types.Array(ContentBlock)
271
- attribute :footnotes, Types::Hash.meta(of: Types::String)
272
- attribute :layout, Types.Array(Types.Array(Types::String))
273
- attribute :title, Types::String
277
+ attribute :abbreviations, Types::Hash.meta(of: Types::String)
278
+ attribute :blocks, Types.Array(ContentBlock)
279
+ attribute :footnotes, Types::Hash.meta(of: Types::String)
280
+ attribute :layout, Types.Array(Types.Array(Types::String))
281
+ attribute :title, Types::String
274
282
 
275
283
  def self.from_dynamic!(d)
276
284
  d = Types::Hash[d]
277
285
  new(
278
- blocks: d.fetch("blocks").map { |x| ContentBlock.from_dynamic!(x) },
279
- footnotes: Types::Hash[d.fetch("footnotes")].map { |k, v| [k, Types::String[v]] }.to_h,
280
- layout: d.fetch("layout"),
281
- title: d.fetch("title"),
286
+ abbreviations: Types::Hash[d.fetch("abbreviations")].map { |k, v| [k, Types::String[v]] }.to_h,
287
+ blocks: d.fetch("blocks").map { |x| ContentBlock.from_dynamic!(x) },
288
+ footnotes: Types::Hash[d.fetch("footnotes")].map { |k, v| [k, Types::String[v]] }.to_h,
289
+ layout: d.fetch("layout"),
290
+ title: d.fetch("title"),
282
291
  )
283
292
  end
284
293
 
@@ -288,10 +297,11 @@ module Ortfodb
288
297
 
289
298
  def to_dynamic
290
299
  {
291
- "blocks" => blocks.map { |x| x.to_dynamic },
292
- "footnotes" => footnotes,
293
- "layout" => layout,
294
- "title" => title,
300
+ "abbreviations" => abbreviations,
301
+ "blocks" => blocks.map { |x| x.to_dynamic },
302
+ "footnotes" => footnotes,
303
+ "layout" => layout,
304
+ "title" => title,
295
305
  }
296
306
  end
297
307
 
@@ -388,8 +398,8 @@ module Ortfodb
388
398
  end
389
399
  end
390
400
 
391
- # AnalyzedWork represents a complete work, with analyzed mediae.
392
- class AnalyzedWork < Dry::Struct
401
+ # Work represents a given work in the database.
402
+ class Work < Dry::Struct
393
403
  attribute :built_at, Types::String
394
404
  attribute :content, Types::Hash.meta(of: LocalizedContent)
395
405
  attribute :description_hash, Types::String
@@ -432,7 +442,7 @@ module Ortfodb
432
442
  module Ortfodb
433
443
  class Database
434
444
  def self.from_json!(json)
435
- Types::Hash[JSON.parse(json, quirks_mode: true)].map { |k, v| [k, AnalyzedWork.from_dynamic!(v)] }.to_h
445
+ Types::Hash[JSON.parse(json, quirks_mode: true)].map { |k, v| [k, Work.from_dynamic!(v)] }.to_h
436
446
  end
437
447
  end
438
448
  end
@@ -1,3 +1,3 @@
1
1
  module Ortfodb
2
- VERSION = "1.5.0"
2
+ VERSION = "1.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ortfodb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ewen Le Bihan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-20 00:00:00.000000000 Z
11
+ date: 2024-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct