class ZipContainer::ManagedEntry
ManagedEntry
is the superclass of ManagedDirectory
and ManagedFile
. It should not be used directly but may be subclassed if necessary.
Attributes
The name of the ManagedEntry
. For the full path name of this entry use full_name.
Public Class Methods
Create a new ManagedEntry
with the supplied name. The entry should also be marked as required or not and whether it is hidden for normal operations.
# File lib/zip-container/entries/entry.rb, line 56 def initialize(name, required, hidden) @parent = nil @name = name @required = required @hidden = hidden end
Public Instance Methods
Does this ManagedEntry
exist in the Container
?
# File lib/zip-container/entries/entry.rb, line 101 def exists? container.entries.each do |entry| test = entry.ftype == :directory ? "#{full_name}/" : full_name return true if entry.name == test end false end
The fully qualified name of this ManagedEntry
.
# File lib/zip-container/entries/entry.rb, line 67 def full_name if @parent.is_a?(ZipContainer::Container) @name else "#{@parent.full_name}/#{@name}" end end
Is this ManagedEntry
required to be present according to the specification of its Container
?
# File lib/zip-container/entries/entry.rb, line 80 def required? @required end
Verify this ManagedEntry
returning a list of reasons why it fails if it does so. The empty list is returned if verification passes.
Subclasses should override this method if they require more complex verification to be done.
# File lib/zip-container/entries/entry.rb, line 118 def verify if @required && !exists? ["Entry '#{full_name}' is required but missing."] else [] end end
Verify this ManagedEntry
raising a MalformedContainerError
if it fails.
# File lib/zip-container/entries/entry.rb, line 141 def verify! messages = verify raise MalformedContainerError, messages unless messages.empty? end
Verify this ManagedEntry
by checking that it exists if it is required according to its Container
specification and validating its contents if necessary.
# File lib/zip-container/entries/entry.rb, line 132 def verify? verify.empty? end
Protected Instance Methods
Return the Container
that this ManagedEntry
resides in.
# File lib/zip-container/entries/entry.rb, line 152 def container @parent.is_a?(ZipContainer::Container) ? @parent : @parent.container end