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