Updated documentation a little.
authorStanislaw Klekot <dozzie@jarowit.net>
Thu, 13 Feb 2014 18:25:23 +0000 (19:25 +0100)
committerStanislaw Klekot <dozzie@jarowit.net>
Thu, 13 Feb 2014 18:25:23 +0000 (19:25 +0100)
examples/examples.erl [deleted file]
examples/file_format.erl
src/eni.erl
src/overview.edoc

diff --git a/examples/examples.erl b/examples/examples.erl
deleted file mode 100644 (file)
index 60a5b5b..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-%%%---------------------------------------------------------------------------
-%%% @doc
-%%%   Some ENI usage examples.
-%%% @end
-%%%---------------------------------------------------------------------------
-
--module(examples).
index 4081315..3cc4a6e 100644 (file)
@@ -1,8 +1,61 @@
 %%%---------------------------------------------------------------------------
 %%% @doc
-%%%   ENI file format.
+%%%   ENI file format description.
+%%%
+%%%   The format is derived from DOS/Windows INI file, but extended a little
+%%%   to support Erlang terms.
+%%%
+%%%   ENI file consists of options, each in separate line, grouped in
+%%%   sections. Begin of a section is denoted by square brackets
+%%%   (`[section_name]'). The options before the first section marker are
+%%%   returned as a separate.
+%%%
+%%%   Option name may contain any combination of letters (`[a-zA-Z]'), digits,
+%%%   period, underscore or hyphen. The same stands for section name.
+%%%
+%%%   An example config (note "`:='" and "`='" option styles):
+%%%   ```
+%%%   ; traditional INI comment
+%%%   # more "unixish" comment
+%%%   % and "erlangish" comment
+%%%
+%%%   pid_file = /var/run/erl_daemon.pid
+%%%   enabled_services := [http, https].
+%%%
+%%%   [http]
+%%%   bind = 127.0.0.1
+%%%   port := [8080, 8880].
+%%%
+%%%   [https]
+%%%   bind := any.
+%%%   port = 8443
+%%%   ssl_cert = /etc/erl_daemon/cert.pem
+%%%   ssl_key  = /etc/erl_daemon/key.pem
+%%%   '''
+%%%
+%%%   === String options ===
+%%%
+%%%   Option specified with "`='" character is considered a (possibly empty)
+%%%   string. Such string has leading and trailing spaces stripped, but spaces
+%%%   in the middle of the value are preserved.
+%%%
+%%%   In Erlang they are represented as normal strings (that is, as lists).
+%%%
+%%%   === Erlang term options ===
+%%%
+%%%   Option specified with "`:='" has Erlang term as the value. Such term
+%%%   may, but need not to, be ended with a period. The term needs to fit in
+%%%   a signle line, but no constraints on the line length is enforced.
+%%%
+%%%   Fitting in a single line requirement may be relaxed in the future.
+%%%
+%%%   Considering the example above, there are three options of this flavour:
+%%%   <i>enabled_services</i> (containing a list of two atoms), <i>port</i>
+%%%   from <i>http</i> section (list of two integers) and <i>bind</i> from
+%%%   <i>https</i> section (single atom `any').
+%%%
+%%%   @TODO Add support for including a file or directory.
 %%%
-%%%   The format is derived from DOS/Windows INI file.
 %%% @end
 %%%---------------------------------------------------------------------------
 
index 2b80b26..2508458 100644 (file)
@@ -1,6 +1,6 @@
 %%%---------------------------------------------------------------------------
 %%% @doc
-%%%   INI file parser.
+%%%   INI-like config loader.
 %%% @end
 %%%---------------------------------------------------------------------------
 
 %%%---------------------------------------------------------------------------
 %%% types
 
-%% @type config() = {option_list(), [section()]}.
+%% @type config() = {NoSectionOptions :: [option()], Sections :: [section()]}.
 
--type config() :: {option_list(), [section()]}.
+-type config() :: {[option()], [section()]}.
 
-%% @type section() = {section_name(), option_list()}.
+%% @type section() = {section_name(), [option()]}.
 
--type section() :: {section_name(), option_list()}.
+-type section() :: {section_name(), [option()]}.
 
 %% @type section_name() = atom().
 
 -type section_name() :: atom().
 
-%% @type option_list() = [{atom(), term()}].
+%% @type option() = {Name :: atom(), Value :: term()}.
 
--type option_list() :: [{atom(), term()}].
+-type option() :: {atom(), term()}.
 
 %%%---------------------------------------------------------------------------
 
index 97b5b2f..950cca7 100644 (file)
@@ -1,13 +1,12 @@
 @author Stanislaw Klekot <dozzie@jarowit.net>
 @version 0.0.0
-@title INI file parser for Erlang.
+@title Configuration file parser for Erlang.
 @doc
 
-<b>TODO</b>: some description.
+ENI is a configuration format based on dead-simple INI known from DOS and
+Windows. ENI is a superset of (one of the variants of) INI -- ENI additionally
+supports Erlang terms in config.
 
-== Example usage ==
-
-For usage examples see documentation of {@link examples_client} and
-{@link examples_server} modules.
+You can find detailed format description here: {@link file_format}.
 
 <!-- vim:set ft=edoc: -->