Module: ZipContainer::ManagedEntries

Included in:
Container, ManagedDirectory
Defined in:
lib/zip-container/managed_entries.rb

Overview

This module provides support for managed file and directory entries.

Note! If you mix this module in you must call initialize_managed_entries in your constructor to ensure that the internal lists of managed entries are correctly assigned.

Instance Method Summary collapse

Instance Method Details

#hidden_directory?(entry) ⇒ Boolean

:call-seq:

hidden_directory?(entry) -> boolean

Is the supplied entry/name a hidden directory?

Returns:

  • (Boolean)


112
113
114
115
# File 'lib/zip-container/managed_entries.rb', line 112

def hidden_directory?(entry)
  name = Util.entry_name(entry)
  managed_directory?(name) ? all_managed_entries[name].hidden? : false
end

#hidden_entry?(entry) ⇒ Boolean

:call-seq:

hidden_entry?(entry) -> boolean

Is the supplied entry/name a hidden?

Returns:

  • (Boolean)


130
131
132
# File 'lib/zip-container/managed_entries.rb', line 130

def hidden_entry?(entry)
  hidden_directory?(entry) || hidden_file?(entry)
end

#hidden_file?(entry) ⇒ Boolean

:call-seq:

hidden_file?(entry) -> boolean

Is the supplied entry/name a hidden file?

Returns:

  • (Boolean)


121
122
123
124
# File 'lib/zip-container/managed_entries.rb', line 121

def hidden_file?(entry)
  name = Util.entry_name(entry)
  managed_file?(name) ? all_managed_entries[name].hidden? : false
end

#managed_directoriesObject

:call-seq:

managed_directories -> Array

Return the list of managed directories.



52
53
54
55
56
57
# File 'lib/zip-container/managed_entries.rb', line 52

def managed_directories
  return @managed_directories if defined?(@managed_directories)

  dirs = @directories.values
  @managed_directories = dirs + dirs.map(&:managed_directories).flatten
end

#managed_directory?(entry) ⇒ Boolean

:call-seq:

managed_directory?(entry) -> boolean

Is the supplied entry/name a managed directory?

Returns:

  • (Boolean)


71
72
73
# File 'lib/zip-container/managed_entries.rb', line 71

def managed_directory?(entry)
  managed_entry?(entry, managed_directory_names)
end

#managed_directory_namesObject

:call-seq:

managed_directory_names -> Array

Return the list of managed directory names.



63
64
65
# File 'lib/zip-container/managed_entries.rb', line 63

def managed_directory_names
  @managed_directory_names ||= managed_directories.map(&:full_name)
end

#managed_entriesObject

:call-seq:

managed_entries -> Array

Return the list of managed files and directories.



79
80
81
# File 'lib/zip-container/managed_entries.rb', line 79

def managed_entries
  @managed_entries ||= managed_files + managed_directories
end

#managed_entry?(entry, list = managed_entry_names) ⇒ Boolean

:call-seq:

managed_entry?(entry) -> boolean

Is the supplied entry/name a managed entry?

Returns:

  • (Boolean)


95
96
97
98
# File 'lib/zip-container/managed_entries.rb', line 95

def managed_entry?(entry, list = managed_entry_names)
  name = Util.entry_name(entry)
  list.map(&:downcase).include? name.downcase
end

#managed_entry_namesObject

:call-seq:

managed_entry_names -> Array

Return the list of managed file and directory names.



87
88
89
# File 'lib/zip-container/managed_entries.rb', line 87

def managed_entry_names
  @managed_entry_names ||= managed_file_names + managed_directory_names
end

#managed_file?(entry) ⇒ Boolean

:call-seq:

managed_file?(entry) -> boolean

Is the supplied entry/name a managed file?

Returns:

  • (Boolean)


104
105
106
# File 'lib/zip-container/managed_entries.rb', line 104

def managed_file?(entry)
  managed_entry?(entry, managed_file_names)
end

#managed_file_namesObject

:call-seq:

managed_file_names -> Array

Return the list of managed file names.



148
149
150
# File 'lib/zip-container/managed_entries.rb', line 148

def managed_file_names
  @managed_file_names ||= managed_files.map(&:full_name)
end

#managed_filesObject

:call-seq:

managed_files -> Array

Return the list of managed files.



138
139
140
141
142
# File 'lib/zip-container/managed_entries.rb', line 138

def managed_files
  @managed_files ||=
    @files.values +
    @directories.values.map(&:managed_files).flatten
end

#verify_managed_entriesObject

:call-seq:

verify_managed_entries -> Array

All managed files and directories are checked to make sure that they exist and validate, if required.



157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/zip-container/managed_entries.rb', line 157

def verify_managed_entries
  messages = []

  @directories.each_value do |dir|
    messages += dir.verify
  end

  @files.each_value do |file|
    messages += file.verify
  end

  messages
end

#verify_managed_entries!Object

:call-seq:

verify_managed_entries!

All managed files and directories are checked to make sure that they exist and validate, if required.



176
177
178
179
# File 'lib/zip-container/managed_entries.rb', line 176

def verify_managed_entries!
  messages = verify_managed_entries
  raise MalformedContainerError, messages unless messages.empty?
end