Changeset ffa0760


Ignore:
Timestamp:
12/28/11 10:14:27 (5 months ago)
Author:
mrook
Branches:
master
Children:
28f3d25
Parents:
582f22d
git-author:
Michiel Rook <mrook@…> (12/28/11 10:14:27)
git-committer:
Michiel Rook <mrook@…> (12/28/11 10:14:27)
Message:

Fixes #619 - add 'level' attribute to expandproperties filter

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • classes/phing/filters/ExpandProperties.php

    r491f09a rffa0760  
    3939 */ 
    4040class ExpandProperties extends BaseFilterReader implements ChainableReader { 
     41    protected $logLevel = Project::MSG_VERBOSE; 
    4142    
     43    /** 
     44     * Set level of log messages generated (default = info) 
     45     * @param string $level 
     46     */ 
     47    public function setLevel($level) 
     48    { 
     49        switch ($level) 
     50        { 
     51            case "error": $this->logLevel = Project::MSG_ERR; break; 
     52            case "warning": $this->logLevel = Project::MSG_WARN; break; 
     53            case "info": $this->logLevel = Project::MSG_INFO; break; 
     54            case "verbose": $this->logLevel = Project::MSG_VERBOSE; break; 
     55            case "debug": $this->logLevel = Project::MSG_DEBUG; break; 
     56        } 
     57    } 
     58     
    4259    /** 
    4360     * Returns the filtered stream.  
     
    5875         
    5976        $project = $this->getProject(); 
    60         $buffer = ProjectConfigurator::replaceProperties($project, $buffer, $project->getProperties()); 
     77        $buffer = ProjectConfigurator::replaceProperties($project, $buffer, $project->getProperties(), $this->logLevel); 
    6178         
    6279        return $buffer; 
  • classes/phing/parser/ProjectConfigurator.php

    raea1c54 rffa0760  
    287287    } 
    288288 
    289     // The following two properties are a sort of hack 
     289    // The following three properties are a sort of hack 
    290290    // to enable a static function to serve as the callback 
    291291    // for preg_replace_callback().  Clearly we cannot use object 
     
    295295    private static $propReplaceProject; 
    296296    private static $propReplaceProperties; 
     297    private static $propReplaceLogLevel = Project::MSG_VERBOSE; 
    297298          
    298299    /** 
     
    301302     * static. 
    302303     * 
    303      * @param  object  the project that should be used for property look-ups 
    304      * @param  string  the string to be scanned for property references 
    305      * @param  array   proeprty keys 
     304     * @param  object  $project  the project that should be used for property look-ups 
     305     * @param  string  $value    the string to be scanned for property references 
     306     * @param  array   $keys     property keys 
     307     * @param  integer $logLevel the level of generated log messages 
    306308     * @return string  the replaced string or <code>null</code> if the string 
    307309     *                 itself was null 
    308310     */ 
    309     public static function replaceProperties(Project $project, $value, $keys) { 
     311    public static function replaceProperties(Project $project, $value, $keys, $logLevel = Project::MSG_VERBOSE) { 
    310312         
    311313        if ($value === null) { 
     
    318320        self::$propReplaceProperties = $keys; 
    319321        self::$propReplaceProject = $project; 
     322        self::$propReplaceLogLevel = $logLevel; 
    320323         
    321324        // Because we're not doing anything special (like multiple passes), 
     
    351354        $propertyName = $matches[1]; 
    352355        if (!isset(self::$propReplaceProperties[$propertyName])) { 
    353                     self::$propReplaceProject->log('Property ${'.$propertyName.'} has not been set.', Project::MSG_VERBOSE); 
    354                     return $matches[0]; 
     356            self::$propReplaceProject->log('Property ${'.$propertyName.'} has not been set.', self::$propReplaceLogLevel); 
     357            return $matches[0]; 
    355358        } else { 
    356             self::$propReplaceProject->log('Property ${'.$propertyName.'} => ' . self::$propReplaceProperties[$propertyName], Project::MSG_DEBUG); 
     359            self::$propReplaceProject->log('Property ${'.$propertyName.'} => ' . self::$propReplaceProperties[$propertyName], self::$propReplaceLogLevel); 
    357360        } 
    358361         
  • docs/phing_guide/book/chapters/appendixes/AppendixD2-CoreFilters.html

    rc92151f rffa0760  
    159159                        is a text file</em>. 
    160160        </p> 
    161  
     161    <h3>Attributes</h3> 
     162    <table> 
     163        <caption> 
     164            Attributes for <em>&lt;expandproperties&gt;</em> 
     165        </caption> 
     166        <thead> 
     167            <tr> 
     168                <th>Name</th> 
     169                <th>Type</th> 
     170                <th>Description</th> 
     171                <th>Default</th> 
     172                <th>Required</th> 
     173            </tr> 
     174        </thead> 
     175        <tbody> 
     176            <tr> 
     177                <td>level</td> 
     178                <td>String</td> 
     179                <td>Control the level at which this message is reported. One of 
     180                    <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>, 
     181                    <em>debug</em>.</td> 
     182                <td><em>info</em></td> 
     183                <td>No</td> 
     184            </tr> 
     185        </tbody> 
     186    </table> 
     187     
    162188        <h2> 
    163189                <a name="HeadFilter"></a>HeadFilter 
Note: See TracChangeset for help on using the changeset viewer.