=    Cls.     

ClsRuby      Cls-, 
 ,     IO.    
  .

== ClsRuby#parse_io

 ClsRuby#parse_io    Cls-,  
  IO.     , ,  
      IO#popen.

  ClsRuby#parse_io:
  parsed_output = IO.popen( 'some-cmd' ) do |output|
    root_tag = SomeRootTag.new
    ClsRuby::parse_io( output, 'some-cmd output', root_tag )
    root_tag.value
  end

== ClsRuby#parse_file

 ClsRuby#parse_file    Cls-, 
  .        
 Ruby.

  ClsRuby#parse_file:
  root_tag = SomeConfigRootTag.new
  ClsRuby::parse_file( 'some-config.cfg', root_tag )

== ClsRuby#parse_string

 ClsRuby#parse_string    Cls-,  
  String.        Cls-
 -  Cls-. ,  Cls-   
  .

  ClsRuby#parse_string:
  cls_data = read_cls_data_from_somewhere
  root_tag = SomeRootTag.new
  ClsRuby::parse_string( cls_data, root_tag )

==  

===  ClsRuby#parse_file  ClsRuby#parse_string    

    Cls-   ClsRuby#parse_io.
 ClsRuby#parse_file  ClsRuby#parse_string   
 ,     
.    parse_file  parse_string  
  parse_io.

         
 Cls- --  ,       
  ClsRuby#parse_io,    parse_file  parse_string.

===  parse_*         

     parse_*   
     --     parse_* 
   root_tag. ,  parse_*    
,       :
  first_root_tag = FirstRootTag.new
  second_root_tag = SecondRootTag.new
  third_root_tag = ThirdRootTag.new

  ClsRuby::parse_string( cls_data,
      first_root_tag,
      second_root_tag,
      third_root_tag )
   :
  #      
  #     Array.
  root_tags = make_root_tags

  ClsRuby::parse_string( cls_data, *root_tags )


# vim:ts=2:sts=2:sw=2:expandtab:ft=txt:tw=78

