Class: NWN::Resources::Container
- Inherits:
-
Object
- Object
- NWN::Resources::Container
- Defined in:
- lib/nwn/res.rb
Overview
Wraps n ContentObjects; a baseclass for erf/key encapsulation.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
An array of all ContentObjects indexed by this Container.
Instance Method Summary collapse
-
#add(o) ⇒ Object
Add a content object giving the ContentObject.
-
#add_file(filename, io = nil) ⇒ Object
Add a content object giving a
filename
and a optionalio
. -
#filenames ⇒ Object
Returns a list of filenames, all lowercase.
-
#get(filename) ⇒ Object
Get the contents of the given filename.
-
#get_content_object(filename) ⇒ Object
Get the ContentObject pointing to the given filename.
-
#has?(filename) ⇒ Boolean
Returns true if the given filename is contained herein.
-
#initialize ⇒ Container
constructor
A new instance of Container.
Constructor Details
#initialize ⇒ Container
Returns a new instance of Container.
68 69 70 |
# File 'lib/nwn/res.rb', line 68 def initialize @content = [] end |
Instance Attribute Details
#content ⇒ Object (readonly)
An array of all ContentObjects indexed by this Container.
66 67 68 |
# File 'lib/nwn/res.rb', line 66 def content @content end |
Instance Method Details
#add(o) ⇒ Object
Add a content object giving the ContentObject
85 86 87 |
# File 'lib/nwn/res.rb', line 85 def add o @content << o end |
#add_file(filename, io = nil) ⇒ Object
Add a content object giving a filename
and a optional io
.
80 81 82 |
# File 'lib/nwn/res.rb', line 80 def add_file filename, io = nil @content << ContentObject.new_from(filename, io) end |
#filenames ⇒ Object
Returns a list of filenames, all lowercase.
90 91 92 |
# File 'lib/nwn/res.rb', line 90 def filenames @content.map {|x| x.filename.downcase } end |
#get(filename) ⇒ Object
Get the contents of the given filename. Raises ENOENT if not mapped.
107 108 109 |
# File 'lib/nwn/res.rb', line 107 def get filename get_content_object(filename).get end |
#get_content_object(filename) ⇒ Object
Get the ContentObject pointing to the given filename. Raises ENOENT if not mapped.
96 97 98 99 100 101 102 103 |
# File 'lib/nwn/res.rb', line 96 def get_content_object filename filename = filename.downcase ret = @content.select {|x| filename == x.filename } raise Errno::ENOENT, "No ContentObject with the given filename #{filename.inspect} found." if ret.size == 0 ret[0] end |
#has?(filename) ⇒ Boolean
Returns true if the given filename is contained herein. Case-insensitive.
74 75 76 |
# File 'lib/nwn/res.rb', line 74 def has?(filename) filenames.index(filename.downcase) != nil end |