%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%
%                                                                              %
%  Copyright (c) 2013 - Michiel Helvensteijn   (www.mhelvens.net)              %
%                                                                              %
%  This work may be distributed and/or modified under the conditions           %
%  of the LaTeX Project Public License, either version 1.3 of this             %
%  license or (at your option) any later version. The latest version           %
%  of this license is in       http://www.latex-project.org/lppl.txt           %
%  and version 1.3 or later is part of all distributions of LaTeX              %
%  version 2005/12/01 or later.                                                %
%                                                                              %
%  This work has the LPPL maintenance status `maintained'.                     %
%                                                                              %
%  The Current Maintainer of this work is Michiel Helvensteijn.                %
%                                                                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%%

% I will 'officially' release this file at some point in the future. For
% now I'm just using it to document a couple of packages. Still, it's
% released under LPPL, so use it as you will.
%
% -- Michiel Helvensteijn

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dry}
  [2013/10/11 convenience macros for reusing LaTeX code]

\RequirePackage{filecontents}
\RequirePackage{xparse}
\RequirePackage{etoolbox}
\RequirePackage{withargs}

\newcommand\minput[1]{%
  \input{#1}\unskip%
}

\NewDocumentCommand{\NewDRYer}{m +m}{%
  \withargs [\uniquecsname] [#2] {%
    \newenvironment{#1}{%
      \begingroup%
      \@tempswafalse\filec@ntents{##1.tmp}%
    }{%
      \endfilecontents%
      \endgroup%
    }%
    \AfterEndEnvironment{#1}{%
      \withargs (xn) [##1.tmp] [\minput{##1.tmp}] {%
        ##2%
      }%
    }%
  }%
}
