Class: IniParse::Document
- Inherits:
-
Object
- Object
- IniParse::Document
- Includes:
- Enumerable
- Defined in:
- lib/iniparse/document.rb
Overview
Represents an INI document.
Instance Attribute Summary collapse
-
#lines ⇒ Object
readonly
Returns the value of attribute lines.
-
#path ⇒ Object
Returns the value of attribute path.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Returns the section identified by
key
. -
#each(*args, &blk) ⇒ Object
Enumerates through each Section in this document.
-
#has_section?(key) ⇒ Boolean
Returns true if a section with the given
key
exists in this document. -
#initialize(path = nil) ⇒ Document
constructor
Creates a new Document instance.
-
#save(path = nil) ⇒ Object
Saves a copy of this Document to disk.
-
#to_ini ⇒ Object
Returns this document as a string suitable for saving to a file.
Constructor Details
#initialize(path = nil) ⇒ Document
Creates a new Document instance.
10 11 12 13 |
# File 'lib/iniparse/document.rb', line 10 def initialize(path = nil) @path = path @lines = IniParse::SectionCollection.new end |
Instance Attribute Details
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
6 7 8 |
# File 'lib/iniparse/document.rb', line 6 def lines @lines end |
#path ⇒ Object
Returns the value of attribute path.
7 8 9 |
# File 'lib/iniparse/document.rb', line 7 def path @path end |
Instance Method Details
#[](key) ⇒ Object
Returns the section identified by key
.
Returns nil if there is no Section with the given key.
31 32 33 |
# File 'lib/iniparse/document.rb', line 31 def [](key) @lines[key.to_s] end |
#each(*args, &blk) ⇒ Object
Enumerates through each Section in this document.
Does not yield blank and comment lines by default; if you want all lines to be yielded, pass true.
Parameters
- include_blank<Boolean>
-
Include blank/comment lines?
23 24 25 |
# File 'lib/iniparse/document.rb', line 23 def each(*args, &blk) @lines.each(*args, &blk) end |
#has_section?(key) ⇒ Boolean
Returns true if a section with the given key
exists in this document.
41 42 43 |
# File 'lib/iniparse/document.rb', line 41 def has_section?(key) @lines.has_key?(key.to_s) end |
#save(path = nil) ⇒ Object
Saves a copy of this Document to disk.
If a path was supplied when the Document was initialized then nothing needs to be given to Document#save. If Document was not given a file path, or you wish to save the document elsewhere, supply a path when calling Document#save.
Parameters
- path<String>
-
A path to which this document will be saved.
Raises
- IniParseError
-
If your document couldn’t be saved.
58 59 60 61 62 |
# File 'lib/iniparse/document.rb', line 58 def save(path = nil) @path = path if path raise IniParseError, 'No path given to Document#save' if @path !~ /\S/ File.open(@path, 'w') { |f| f.write(self.to_ini) } end |
#to_ini ⇒ Object
Returns this document as a string suitable for saving to a file.
36 37 38 |
# File 'lib/iniparse/document.rb', line 36 def to_ini @lines.to_a.map { |line| line.to_ini }.join($/) end |