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 |