Class: ZipContainer::ManagedDirectory

Inherits:
ManagedEntry show all
Includes:
ManagedEntries, ReservedNames
Defined in:
lib/zip-container/entries/directory.rb

Overview

A ManagedDirectory acts as the interface to a set of (possibly) managed files within it and also reserves the directory name in the Container namespace.

Once a ManagedDirectory is registered in a Container then only it can be used to write to its contents.

Instance Attribute Summary

Attributes inherited from ManagedEntry

#name, #parent

Instance Method Summary collapse

Methods included from ManagedEntries

#hidden_directory?, #hidden_entry?, #hidden_file?, #managed_directories, #managed_directory?, #managed_directory_names, #managed_entries, #managed_entry?, #managed_entry_names, #managed_file?, #managed_file_names, #managed_files, #verify_managed_entries, #verify_managed_entries!

Methods included from Util

#entry_name

Methods included from ReservedNames

#reserved_entry?, #reserved_names

Methods inherited from ManagedEntry

#exists?, #full_name, #hidden?, #required?, #verify!, #verify?

Constructor Details

#initialize(name, options = {}) ⇒ ManagedDirectory

:call-seq:

new(name, options = {}) -> ManagedDirectory

Create a new ManagedDirectory with the supplied name. Options that can be passed in are:

  • :required whether it is required to exist or not (default false).

  • :hidden whether it is hidden for normal operations.

  • :entries a list of ManagedFile and ManagedDirectory objects that are within this directory (default []).



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/zip-container/entries/directory.rb', line 57

def initialize(name, options = {})
  options = {
    required: false,
    hidden: false,
    entries: []
  }.merge(options)

  super(name, options[:required], options[:hidden])

  initialize_managed_entries(options[:entries])
end

Instance Method Details

#verifyObject

:call-seq:

verify -> Array

Verify this ManagedDirectory for correctness. ManagedFiles registered within it are verified recursively.

If it does not pass verification a list of reasons why it fails is returned. The empty list is returned if verification passes.



77
78
79
80
81
82
83
# File 'lib/zip-container/entries/directory.rb', line 77

def verify
  messages = super

  @files.values.each { |f| messages += f.verify }

  messages
end