Class | Hashery::IniHash |
In: |
lib/hashery/ini_hash.rb
|
Parent: | Object |
Hash class with methods to read from and write into ini files.
A ini file is a text file in a specific format, it may include several fields which are sparated by field headlines which are enclosured by "[]". Each field may include several key-value pairs.
Each key-value pair is represented by one line and the value is sparated from the key by a "=".
# this is the first comment which will be saved in the comment attribute mail=info@example.com domain=example.com # this is a comment which will not be saved [database] db=example user=john passwd=very-secure host=localhost # this is another comment [filepaths] tmp=/tmp/example lib=/home/john/projects/example/lib htdocs=/home/john/projects/example/htdocs [ texts ] wellcome=Wellcome on my new website! Website description = This is only a example. # and another comment
Ini#comment stores:
"this is the first comment which will be saved in the comment attribute"
Ini‘s internal hash stores:
{ "mail" => "info@example.com", "domain" => "example.com", "database" => { "db" => "example", "user" => "john", "passwd" => "very-secure", "host" => "localhost" }, "filepaths" => { "tmp" => "/tmp/example", "lib" => "/home/john/projects/example/lib", "htdocs" => "/home/john/projects/example/htdocs" } "texts" => { "wellcome" => "Wellcome on my new website!", "Website description" => "This is only a example." } }
As you can see this module gets rid of all comments, linebreaks and unnecessary spaces at the beginning and the end of each field headline, key or value.
Using the object is stright forward:
ini = IniHash.new("path/settings.ini") ini["mail"] = "info@example.com" ini["filepaths"] = { "tmp" => "/tmp/example" } ini.comment = "This is\na comment" puts ini["filepaths"]["tmp"] # => /tmp/example ini.write()
IniHash is based on ini.rb.
Copyright (C) 2007 Jeena Paradies <info@jeenaparadies.net>
to_s | -> | inspect |
text | -> | to_s |
@deprecated |
comment | [RW] | The string which holds the comments on the top of the file |
inihash | [RW] | The hash which holds all INI data. |
Reading comments from file
path - a path to the INI file
Returns a `String` with the comments from the beginning of the INI file.
Reading data from file
path - a path to the ini file
Returns a `Hash` which represents the data from the file.
Turn a hash (up to 2 levels deepness) into a ini string
inihash - Hash representing the ini File. Default is a empty hash.
Returns a String in the ini file format.
TODO: Rename `IniHash.text` method to something else ?
Writing a ini hash into a file
path - Path to the INI file. inihash - Hash representing the ini File. Default is a empty hash. comment - String with comments which appear on the
top of the file. Each line will get a "#" before. Default is no comment.
Turn a hash (up to 2 levels deepness) into a ini string
inihash - Hash representing the ini File. Default is a empty hash.
Returns a string in the ini file format.