class AnsibleDocGenerator::DocGenerator::Interpolator::FileExtractor
Attributes
input[R]
role_path[R]
Public Class Methods
new(input, role_path)
click to toggle source
# File lib/ansible_doc_generator/doc_generator/interpolator/file_extractor.rb, line 9 def initialize input, role_path @input = input @role_path = role_path end
Public Instance Methods
call()
click to toggle source
# File lib/ansible_doc_generator/doc_generator/interpolator/file_extractor.rb, line 14 def call output = input input.scan(/f\{[^\}]+\}/).each do |interpolation| file_content = get_file_content(interpolation) output.gsub!(interpolation, file_content) end output end
Private Instance Methods
get_file_content(interpolation)
click to toggle source
# File lib/ansible_doc_generator/doc_generator/interpolator/file_extractor.rb, line 27 def get_file_content interpolation file_name = interpolation.match(/f\{(\S*)\}/)[1] file_path = get_file_path_from(file_name) return interpolation if file_path.nil? File.read(file_path) end
get_file_path_from(file_name)
click to toggle source
# File lib/ansible_doc_generator/doc_generator/interpolator/file_extractor.rb, line 35 def get_file_path_from file_name %w(files templates) .map{|folder_name| File.join(main_folder, folder_name, file_name) } .find{|file_path| File.exists?(file_path) } end
main_folder()
click to toggle source
# File lib/ansible_doc_generator/doc_generator/interpolator/file_extractor.rb, line 41 def main_folder @main_folder ||= File.expand_path("..", File.dirname(role_path)) end