Module: ZipContainer::ManagedEntries

Includes:
Util
Included in:
Container, ManagedDirectory
Defined in:
lib/zip-container/entries/managed.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

Methods included from Util

#entry_name

Instance Method Details

#hidden_directory?(entry) ⇒ Boolean

:call-seq:

hidden_directory?(entry) -> boolean

Is the supplied entry/name a hidden directory?

Returns:

  • (Boolean)


109
110
111
112
# File 'lib/zip-container/entries/managed.rb', line 109

def hidden_directory?(entry)
  name = 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)


127
128
129
# File 'lib/zip-container/entries/managed.rb', line 127

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)


118
119
120
121
# File 'lib/zip-container/entries/managed.rb', line 118

def hidden_file?(entry)
  name = 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.



48
49
50
51
52
53
54
# File 'lib/zip-container/entries/managed.rb', line 48

def managed_directories
  return @managed_directories if @managed_directories

  dirs = @directories.values
  @managed_directories = dirs +
    dirs.map { |d| d.managed_directories }.flatten
end

#managed_directory?(entry) ⇒ Boolean

:call-seq:

managed_directory?(entry) -> boolean

Is the supplied entry/name a managed directory?

Returns:

  • (Boolean)


68
69
70
# File 'lib/zip-container/entries/managed.rb', line 68

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.



60
61
62
# File 'lib/zip-container/entries/managed.rb', line 60

def managed_directory_names
  @managed_directory_names ||= managed_directories.map { |d| d.full_name }
end

#managed_entriesObject

:call-seq:

managed_entries -> Array

Return the list of managed files and directories.



76
77
78
# File 'lib/zip-container/entries/managed.rb', line 76

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)


92
93
94
95
# File 'lib/zip-container/entries/managed.rb', line 92

def managed_entry?(entry, list = managed_entry_names)
  name = entry_name(entry)
  list.map { |n| n.downcase }.include? name.downcase
end

#managed_entry_namesObject

:call-seq:

managed_entry_names -> Array

Return the list of managed file and directory names.



84
85
86
# File 'lib/zip-container/entries/managed.rb', line 84

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)


101
102
103
# File 'lib/zip-container/entries/managed.rb', line 101

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.



144
145
146
# File 'lib/zip-container/entries/managed.rb', line 144

def managed_file_names
  @managed_file_names ||= managed_files.map { |f| f.full_name }
end

#managed_filesObject

:call-seq:

managed_files -> Array

Return the list of managed files.



135
136
137
138
# File 'lib/zip-container/entries/managed.rb', line 135

def managed_files
  @managed_files ||= @files.values +
    @directories.values.map { |d| d.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.



153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/zip-container/entries/managed.rb', line 153

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.



172
173
174
175
# File 'lib/zip-container/entries/managed.rb', line 172

def verify_managed_entries!
  messages = verify_managed_entries
  raise MalformedContainerError.new(messages) unless messages.empty?
end