Module: Omnizip::Metadata

Defined in:
lib/omnizip/metadata.rb,
lib/omnizip/metadata/entry_metadata.rb,
lib/omnizip/metadata/metadata_editor.rb,
lib/omnizip/metadata/archive_metadata.rb,
lib/omnizip/metadata/metadata_registry.rb,
lib/omnizip/metadata/metadata_validator.rb

Overview

Metadata editing module Provides in-place metadata modification without recompression

Defined Under Namespace

Classes: ArchiveMetadata, EntryMetadata, MetadataEditor, MetadataRegistry, MetadataValidator

Class Method Summary collapse

Class Method Details

.edit_archive(archive) {|metadata| ... } ⇒ ArchiveMetadata

Edit archive metadata

Parameters:

Yields:

  • (metadata)

    Block to modify metadata

Returns:



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

def edit_archive(archive, &block)
   = ArchiveMetadata.new(archive)
  yield() if block
  
end

.edit_entry(entry) {|metadata| ... } ⇒ EntryMetadata

Edit entry metadata

Parameters:

Yields:

  • (metadata)

    Block to modify metadata

Returns:



19
20
21
22
23
# File 'lib/omnizip/metadata.rb', line 19

def edit_entry(entry, &block)
   = EntryMetadata.new(entry)
  yield() if block
  
end

.editor(archive) ⇒ MetadataEditor

Create a metadata editor for batch operations

Parameters:

Returns:



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

def editor(archive)
  MetadataEditor.new(archive)
end

.validate(metadata) ⇒ Boolean

Validate metadata

Parameters:

Returns:

  • (Boolean)

    True if valid



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/omnizip/metadata.rb', line 45

def validate()
  validator = MetadataValidator.new
  case 
  when EntryMetadata
    validator.validate_entry()
  when ArchiveMetadata
    validator.validate_archive()
  else
    raise ArgumentError, "Unknown metadata type: #{.class}"
  end
end