class Textmerge::Merge
Public Class Methods
new(options)
click to toggle source
# File lib/textmerge/merge.rb, line 6 def initialize(options) @template_file = options[:template] @input_file = options[:input] @output_file = options[:output] # @sections = options[:sections] end
Public Instance Methods
build_input_file(template)
click to toggle source
# File lib/textmerge/merge.rb, line 28 def build_input_file(template) # Collect questions output = "" questions = get_requests(template) # output hash to string and send to write_file method questions.each do |num,question| output << "#{num}:#{question}\n" end output end
build_input_from_sections()
click to toggle source
# File lib/textmerge/merge.rb, line 13 def build_input_from_sections #Returns input file if @sections section_array = @sections.split(" ") section_array.each do |sect| end end end
get_requests(data)
click to toggle source
# File lib/textmerge/merge.rb, line 52 def get_requests(data) regex = /\{(\d{1,3})\:(\w.+?)\}/ collection = data.scan(regex) array_to_hash(collection) end
get_responses(requests)
click to toggle source
# File lib/textmerge/merge.rb, line 58 def get_responses(requests) requests.each do |k,v| requests[k] = ask_basic_question(v) end requests end
get_responses_from_input_file(data_file = @input_file)
click to toggle source
# File lib/textmerge/merge.rb, line 43 def get_responses_from_input_file(data_file = @input_file) collection = [] File.open(data_file, 'r') do |file| collection = file.map { |line| line.chomp.split(':') } end # collection.sort! array_to_hash(collection) end
merge_responses(responses,data)
click to toggle source
# File lib/textmerge/merge.rb, line 65 def merge_responses(responses,data) responses.each do |k,v| regex = /\{#{k}\:.*?\}/ data.gsub!(regex,v) end data end
name_input_file()
click to toggle source
# File lib/textmerge/merge.rb, line 39 def name_input_file @template_file.split(".txt")[0] + "-input.txt" end
read_template()
click to toggle source
# File lib/textmerge/merge.rb, line 23 def read_template file = File.open(@template_file, "rb") file.read end
write_file(contents,filename = @output_file)
click to toggle source
# File lib/textmerge/merge.rb, line 73 def write_file(contents,filename = @output_file) File.open(filename, 'w') {|f| f.write(contents)} end
Protected Instance Methods
array_to_hash(array)
click to toggle source
# File lib/textmerge/merge.rb, line 83 def array_to_hash(array) sorted = array.sort_by { |m,e| m.to_i } sorted.inject({}) {|m,e| m[e[0].to_i] = e[1]; m} end
ask_basic_question(question)
click to toggle source
# File lib/textmerge/merge.rb, line 79 def ask_basic_question(question) ask("#{question} ?") end