module FsTemplate::TemplateFile::NewWay
Public Instance Methods
apply_body_to_long(base_body)
click to toggle source
# File lib/fs_template/template_file.rb, line 33 def apply_body_to_long(base_body) params = note_params if note == 'append' base_body + body elsif params[:action] == 'insert' && params[:after] base_body.gsub(params[:after],"#{params[:after]}#{body}").tap do |subbed| if subbed == base_body raise "no change, couldn't find #{params[:after]} in \n#{base_body}" end end elsif params[:action] == 'insert' && params[:before] base_body.gsub(params[:before],"#{body}#{params[:before]}").tap do |subbed| if subbed == base_body raise "no change, couldn't find #{params[:before]} in \n#{base_body}" end end elsif params[:action] == 'replace' && params[:base] base_body.gsub(params[:base],body).tap do |subbed| if subbed == base_body raise "no change, couldn't find #{params[:base]} in \n#{base_body}" end end else raise "bad" end end
note_params()
click to toggle source
# File lib/fs_template/template_file.rb, line 17 def note_params res = {} lines = note.split("\n").select { |x| x.present? } if lines.size == 1 res[:action] = lines.first.strip else lines.each do |line| parts = line.split(":").map { |x| x.strip }.select { |x| x.present? } raise "bad #{path} #{parts.inspect}" unless parts.size == 2 res[parts[0].to_sym] = parts[1] end end res end
split_note_and_body_long()
click to toggle source
# File lib/fs_template/template_file.rb, line 7 def split_note_and_body_long if full_body =~ /<overlay>(.+)<\/overlay>/m note = $1 rest = full_body.gsub(/<overlay>.+<\/overlay>/m,"") {:note => note, :body => rest, :format => :long} else nil end end