ó
Ñs/Uc           @   sv   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d „  Z d „  Z d „  Z g  d d g d „ Z	 d S(	   sÇ   
High-level CSS and JS minification class for web2py.
Called by response.include_files()
Created by: Ross Peoples <ross.peoples@gmail.com>
Modified by: Massimo Di Pierro <massimo.dipierro@gmail.com>
iÿÿÿÿNc         C   s)   t  |  d ƒ } | j ƒ  } | j ƒ  | S(   Nt   rb(   t   opent   readt   close(   t   filenamet   ft   data(    (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pyt   read_binary_file   s    
c         C   s*   t  |  d ƒ } | j | ƒ | j ƒ  d  S(   Nt   wb(   R   t   writeR   (   R   R   R   (    (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pyt   write_binary_file   s    c         C   s   t  j d d | |  ƒ S(   Ns   url\((["\'])\.\./s   url(\1(   t   ret   sub(   t   csst   static_path(    (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pyt	   fix_links   s    s
   /jquery.jss   /anytime.jsc       
      sq  | p	 d } | p d } d | k } d | k } d | k }	 d | k }
 d | k } d | k } | j  d d ƒ \ } } g  } g  } g  } g  } x"t |  ƒ D]\ } ‰  ˆ  j d ƒ sÕ t ‡  f d †  | Dƒ ƒ rè | j ˆ  ƒ q n  t j j | d ˆ  t | ƒ d ƒ } ˆ  j	 ƒ  j
 d	 ƒ r| j ˆ  ƒ | j d ƒ ˆ  j d ƒ } } d
 } xB t | ƒ D]4 \ } } y | | | k r‹| } Pn  WqbqbXqbW| rt | ƒ } d j | |  ƒ d } t | | ƒ } | rñ| j t j | ƒ ƒ q| j | ƒ q±| j ˆ  ƒ q ˆ  j	 ƒ  j
 d ƒ r | j ˆ  ƒ |
 r¡t | ƒ } | r‘ˆ  j
 d ƒ r‘t ‡  f d †  | Dƒ ƒ r‘| j t j | ƒ ƒ q®| j | ƒ q±| j ˆ  ƒ q q Wt j t | ƒ ƒ j ƒ  } | r•| r•d j d „  | Dƒ ƒ } |	 st j j | d | ƒ } t j j | ƒ s5t j | ƒ n  d | } t j j | | ƒ } t | | ƒ | d | } | j | ƒ qŸ| j d | f ƒ n
 | | 7} | rc|
 rcd j d „  | Dƒ ƒ } | rÙd | f } nz t j j | d | ƒ } t j j | ƒ st j | ƒ n  d | } t j j | d | | ƒ } t | | ƒ | d | } | j | ƒ n
 | | 7} | S(   s  
    Input:
    files: is a list of URLs to JS and CSS files (not repeated)
    path_info: is the URL of a temp static folder
    folder: is the application folder
    optimize_css: is a string of the form 'concat|minify|inline'
    optimize_js: is a string of the form 'concat|minify|inline'
    (minify requires concat, inline requires concat also)

    Returns a new list of:
    - filename (absolute or relative, css or js, actual or temporary) or
    - ('css:inline','...css..')
    - ('js:inline','...js..')
    t    t   concatt   minifyt   inlinet   /i   c         3   s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   t   endswith(   t   .0t   x(   R   (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pys	   <genexpr>D   s   t   statics   .cssi    s   .jss   .min.jsc         3   s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R   (   R   R   (   R   (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pys	   <genexpr>i   s   s   

c         s   s   |  ] } | Vq d  S(   N(    (   R   t   contents(    (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pys	   <genexpr>r   s    s   compressed_%s.csss   /%ss
   css:inlines   
c         s   s   |  ] } | Vq d  S(   N(    (   R   R   (    (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pys	   <genexpr>   s    s	   js:inlines   compressed_%s.js(   t   rsplitt	   enumeratet
   startswitht   anyt   appendt   ost   patht   joint   lent   lowerR   t   splitR   R   t   cssmint   jsmint   hashlibt   md5t   reprt	   hexdigestt   existst   mkdirR
   (    t   filest	   path_infot   foldert   optimize_csst   optimize_jst   ignore_concatt   ignore_minifyt
   concat_csst
   minify_csst
   inline_csst	   concat_jst	   minify_jst	   inline_jsR   t   tempt	   new_filesR   t   jst	   processedt   kt   abs_filenamet
   spath_infot	   sfilenamet   ut   it   aR   t   replacementt   dest_keyt   temppatht   destt   tempfile(    (   R   sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pyR   #   sž    	



(
   t   __doc__R%   R&   R   R'   R   R   R
   R   R   (    (    (    sE   /var/www/c4bv.valis/web2py-ge-R-2.10.3/gluon/contrib/minify/minify.pyt   <module>	   s   			