def copy_keeps(original, scratch)
      Cog.activate_language(:filename => original) do
        original = scratch unless File.exists? original
        keeps = gather_keeps original, scratch
        keeps.each_pair do |hook, c|
          result = update c, :type => 'keep' do |c|
            c.keep_body
          end
          raise Errors::UnrecognizedKeepHook.new :hook => hook, :filename => original if result.nil?
        end
      end
    end
def copy_keeps(original, scratch)
      Cog.activate_language(:filename => original) do
        original = scratch unless File.exists? original
        keeps = gather_keeps original, scratch
        keeps.each_pair do |hook, c|
          result = update c, :type => 'keep' do |c|
            c.keep_body
          end
          raise Errors::UnrecognizedKeepHook.new :hook => hook, :filename => original if result.nil?
        end
      end
    end
Copy keep bodies from the original file to the scratch file
 @param original [String] file in which to search for keep statements. If the original does not exist, then scratch will serve as the original (we do this so that the keeps will get expanded in any case)
 @param scratch [String] file to which keep bodies will be copied
 @return [nil]