Class: DocBuilder
- Inherits:
- 
      Object
      
        - Object
- DocBuilder
 
- Defined in:
- lib/markdown-helpers/doc_tree_builder.rb
Overview
Class for building an index tree from erb and directory root
Instance Method Summary collapse
- 
  
    
      #generate_index(options = {       directory: @config['doc_directory'],       level: @config['base_level'],       header_level: @config['base_header']     })  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    recursive call on directories starting at @doc_directory writes indented list block for each directory. 
- 
  
    
      #initialize(config_file)  ⇒ DocBuilder 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of DocBuilder. 
- #write ⇒ Object
Constructor Details
#initialize(config_file) ⇒ DocBuilder
Returns a new instance of DocBuilder.
| 7 8 9 10 11 12 13 14 15 16 17 | # File 'lib/markdown-helpers/doc_tree_builder.rb', line 7 def initialize(config_file) @config = YAML.load_file(config_file) @config['base_header'] ||= '' @config['base_level'] ||= 1 if @config['base_level'] < 1 puts ':base_level must be greater than 0' exit end @config['ignore'] ||= [] @doc_index = '' end | 
Instance Method Details
#generate_index(options = { directory: @config['doc_directory'], level: @config['base_level'], header_level: @config['base_header'] }) ⇒ Object
recursive call on directories starting at @doc_directory writes indented list block for each directory
| 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | # File 'lib/markdown-helpers/doc_tree_builder.rb', line 21 def generate_index( = { directory: @config['doc_directory'], level: @config['base_level'], header_level: @config['base_header'] } ) sub_directories = Dir.entries([:directory]) directory_last = true sub_directories.each do |filename| next if ignore_file?(filename, [:directory]) path = File.join([:directory], filename) if File.directory?(path) # case where two directories are back to back [:level] = [:level] - 1 if directory_last && [:level] > 0 concat_directory(path, [:level] + 1, [:header_level]) directory_last = true else concat_file(path, [:level]) directory_last = false end end end | 
#write ⇒ Object
| 45 46 47 48 49 | # File 'lib/markdown-helpers/doc_tree_builder.rb', line 45 def write template = File.read(@config['erb_path']) erb = ERB.new(template) File.write(@config['output_file'], erb.result(binding)) end |