complex_template (RubiGen::Commands::Update)

    # File lib/rubigen/commands.rb, line 657
          def complex_template(relative_source, relative_destination, template_options = {})

             begin
               dest_file = destination_path(relative_destination)
               source_to_update = File.readlines(dest_file).join
             rescue Errno::ENOENT
               logger.missing relative_destination
               return
             end

             logger.refreshing "#{template_options[:insert].gsub(/\.erb/,'')} inside #{relative_destination}"

             begin_mark = Regexp.quote(template_part_mark(template_options[:begin_mark], template_options[:mark_id]))
             end_mark = Regexp.quote(template_part_mark(template_options[:end_mark], template_options[:mark_id]))

             # Refreshing inner part of the template with freshly rendered part.
             rendered_part = render_template_part(template_options)
             source_to_update.gsub!(/#{begin_mark}.*?#{end_mark}/m, rendered_part)

             File.open(dest_file, 'w') { |file| file.write(source_to_update) }
          end