Class: Omnizip::Metadata::MetadataRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/omnizip/metadata/metadata_registry.rb

Overview

Registry of supported metadata per archive format

Class Method Summary collapse

Class Method Details

.formatsArray<Symbol>

Get all registered formats

Returns:

  • (Array<Symbol>)

    List of formats



37
38
39
# File 'lib/omnizip/metadata/metadata_registry.rb', line 37

def formats
  @registry.keys
end

.register(format, supported_fields) ⇒ Object

Register metadata support for a format

Parameters:

  • format (Symbol)

    Format name (e.g., :zip, :seven_zip)

  • supported_fields (Array<Symbol>)

    Supported metadata fields



13
14
15
# File 'lib/omnizip/metadata/metadata_registry.rb', line 13

def register(format, supported_fields)
  @registry[format] = supported_fields
end

.resetObject

Reset registry (for testing)



42
43
44
# File 'lib/omnizip/metadata/metadata_registry.rb', line 42

def reset
  @registry = {}
end

.supported_fields(format) ⇒ Array<Symbol>

Get all supported fields for a format

Parameters:

  • format (Symbol)

    Format name

Returns:

  • (Array<Symbol>)

    List of supported fields



31
32
33
# File 'lib/omnizip/metadata/metadata_registry.rb', line 31

def supported_fields(format)
  @registry[format] || []
end

.supports?(format, field) ⇒ Boolean

Check if a format supports a metadata field

Parameters:

  • format (Symbol)

    Format name

  • field (Symbol)

    Metadata field name

Returns:

  • (Boolean)

    True if supported



21
22
23
24
25
26
# File 'lib/omnizip/metadata/metadata_registry.rb', line 21

def supports?(format, field)
  fields = @registry[format]
  return false unless fields

  fields.include?(field)
end