pat

Formats data described by format strings

#pat A data formatter. Data to be formatted is described by format specifiers of a certain flavor. Currently supported flavors:

  • Java (java.util.Formatter)

##Node environment

    $ npm install pat
    var pat = require('pat'),
        fmt = pat.Formatter.format,
        localizedDateString;

    //Optionally set a culture and/or a flavor.
    //Default flavor is 'java', default culture 'enUS'.
    pat.Formatter.options({
        cultureId: 'deAT'
    });

    localizedDateString = fmt(
        'Aktuelles Datum: %1$#tA, %1$#te. %1$#tB %1$#tY, %1$#tT',
        new Date());
    //Optionally configure require
    require.config({
        //Default module directory, relative to the file including require.js
        baseUrl: 'js/lib',
        //Specific module directories, relative to baseUrl
        paths: {
            pat: 'pat/lib'
        }
    });
    //Include pat and format...
    require(['pat/pat'], function(pat) {
        var fmt = pat.Formatter.format,
            localizedDateString;
    
        //Use default culture (en-US) and default flavor (java)
        localizedDateString = fmt('Current date: %#tc', new Date());
        console.log(localizedDateString);
    
        //Specific culture
        pat.Formatter.options({
            cultureId: 'deAT'
        }, function() {
            localizedDateString = fmt(
                'Aktuelles Datum: %1$#tA, %1$#te. %1$#tB %1$#tY, %1$#tT',
                new Date());
            console.log(localizedDateString);
        });
    });

Include the cultures and flavors to use (any order). Make sure to include pat.js after all the culture and flavor scripts.

    <script type="text/javascript" src="pat/lib/cultures/enUS.js"></script>
    <script type="text/javascript" src="pat/lib/flavors/java.js"></script>
    <script type="text/javascript" src="pat/lib/pat.js"></script>
    <script type="text/javascript">
        var fmt = pat.Formatter.format,
            localizedDateString = fmt('Current date: %#tc', new Date());
        console.log(localizedDateString);
    </script>
  • If a single culture file is included, that culture is used as the default culture. When several culture files are included, the default culture is 'en-US' or, if not included, the culture represented by the first included culture file.

  • If a single flavor file is included, that flavor is used as the default flavor. When several flavor files are included, the default flavor is 'java' or, if not included, the flavor represented by the first included flavor file.

To create additional formatters apply Formatter as a constructor function:

    fmt = new Formatter();
    fmt.options({ cultureId: 'deAT' });
    Formatter.format(...) //Default formatter instance
    fmt.format(...) //Specific instance

Getter/setter: Formatter.options() or formatterInstance.options()

The setter expects an object with one or more of the following properties:

  • cultureId: Id of the culture module to use, defaults to 'enUS'.
  • flavorId: Id of the flavor module to use, defaults to 'java'.
  • lineSeparator: Line separator to use when parsing the line separator format specifier (e.g. '%n'). Defaults to '\n'.

Java flavored format specifiers