<?xml version="1.0" encoding="utf-8"?>
<!--
# This file is part of the ChillDev ViewHelpers bundle.
#
# @author Rafał Wrzeszcz <rafal.wrzeszcz@wrzasq.pl>
# @copyright 2012 - 2013 © by Rafał Wrzeszcz - Wrzasq.pl.
# @version 0.1.8
# @since 0.0.1
# @package ChillDev\Bundle\ViewHelpersBundle
-->
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <parameters>
        <!-- classes definition -->
        <parameter key="chilldev.viewhelpers.helper.title.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Title</parameter>
        <parameter key="chilldev.viewhelpers.helper.meta.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Meta</parameter>
        <parameter key="chilldev.viewhelpers.helper.link.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Link</parameter>
        <parameter key="chilldev.viewhelpers.helper.script.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Script</parameter>
        <parameter key="chilldev.viewhelpers.helper.xmlns.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Xmlns</parameter>
        <parameter key="chilldev.viewhelpers.helper.standalone.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Standalone</parameter>
        <parameter key="chilldev.viewhelpers.helper.truncator.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Helper\Truncator</parameter>

        <parameter key="chilldev.viewhelpers.xhtml.checker.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Xhtml\Checker</parameter>

        <parameter key="chilldev.viewhelpers.container.keywords.class">ChillDev\Bundle\ViewHelpersBundle\Templating\Container\Words</parameter>

        <parameter key="chilldev.viewhelpers.utils.markup.class">ChillDev\Bundle\ViewHelpersBundle\Utils\Markup</parameter>

        <parameter key="chilldev.viewhelpers.path_resolver.class">ChillDev\Bundle\ViewHelpersBundle\PathResolver\PathResolver</parameter>
        <parameter key="chilldev.viewhelpers.path_resolver.assets_transformer.class">ChillDev\Bundle\ViewHelpersBundle\PathResolver\Transformer\AssetsTransformer</parameter>
        <parameter key="chilldev.viewhelpers.path_resolver.request_transformer.class">ChillDev\Bundle\ViewHelpersBundle\PathResolver\Transformer\RequestTransformer</parameter>

        <parameter key="chilldev.viewhelpers.title.separator"> - </parameter>
    </parameters>

    <services>
        <!-- XHTML checker -->
        <service id="chilldev.viewhelpers.xhtml.checker" class="%chilldev.viewhelpers.xhtml.checker.class%">
            <argument type="service" id="chilldev.viewhelpers.filter.xhtml_response" on-invalid="ignore"/>
        </service>

        <!-- keywords container -->
        <service id="chilldev.viewhelpers.container.keywords" class="%chilldev.viewhelpers.container.keywords.class%"/>

        <!-- markup generator container -->
        <service id="chilldev.viewhelpers.utils.markup" class="%chilldev.viewhelpers.utils.markup.class%">
            <argument type="service" id="templating.engine.php"/>
        </service>

        <!-- <meta> tag helper -->
        <service id="chilldev.viewhelpers.helper.meta" class="%chilldev.viewhelpers.helper.meta.class%">
            <tag name="templating.helper" alias="meta"/>
            <argument type="service" id="templating.engine.php"/>
            <argument type="service" id="chilldev.viewhelpers.xhtml.checker"/>
            <argument type="service" id="chilldev.viewhelpers.utils.markup"/>
            <call method="setMetaName">
                <argument>keywords</argument>
                <argument type="service" id="chilldev.viewhelpers.container.keywords"/>
            </call>
        </service>

        <!-- <title> tag helper -->
        <service id="chilldev.viewhelpers.helper.title" class="%chilldev.viewhelpers.helper.title.class%">
            <tag name="templating.helper" alias="title"/>
            <argument type="service" id="templating.engine.php"/>
            <argument>%chilldev.viewhelpers.title.separator%</argument>
        </service>

        <!-- <link> tag helper -->
        <service id="chilldev.viewhelpers.helper.link" class="%chilldev.viewhelpers.helper.link.class%">
            <tag name="templating.helper" alias="link"/>
            <argument type="service" id="templating.engine.php"/>
            <argument type="service" id="chilldev.viewhelpers.xhtml.checker"/>
            <argument type="service" id="chilldev.viewhelpers.utils.markup"/>
            <argument type="service" id="chilldev.viewhelpers.path_resolver"/>
        </service>

        <!-- <script> tag helper -->
        <service id="chilldev.viewhelpers.helper.script" class="%chilldev.viewhelpers.helper.script.class%">
            <tag name="templating.helper" alias="script"/>
            <argument type="service" id="templating.engine.php"/>
            <argument type="service" id="chilldev.viewhelpers.xhtml.checker"/>
            <argument type="service" id="chilldev.viewhelpers.utils.markup"/>
            <argument type="service" id="chilldev.viewhelpers.path_resolver"/>
        </service>

        <!-- xmlns attribute helper -->
        <service id="chilldev.viewhelpers.helper.xmlns" class="%chilldev.viewhelpers.helper.xmlns.class%">
            <tag name="templating.helper" alias="xmlns"/>
            <argument type="service" id="templating.engine.php"/>
        </service>

        <!-- string truncate helper -->
        <service id="chilldev.viewhelpers.helper.truncator" class="%chilldev.viewhelpers.helper.truncator.class%">
            <tag name="templating.helper" alias="truncate"/>
        </service>

        <!-- sub-requests helper -->
        <service id="chilldev.viewhelpers.helper.standalone" class="%chilldev.viewhelpers.helper.standalone.class%">
            <tag name="templating.helper" alias="standalone"/>
            <argument type="service" id="templating.helper.actions"/>
        </service>

        <!-- paths resolver -->
        <service id="chilldev.viewhelpers.path_resolver" class="%chilldev.viewhelpers.path_resolver.class%"/>

        <!-- assets path transformer -->
        <service id="chilldev.viewhelpers.path_resolver.assets_transformer" class="%chilldev.viewhelpers.path_resolver.assets_transformer.class%">
            <tag name="chilldev.viewhelpers.path_transformer" prefix="assets"/>
            <argument type="service" id="templating.helper.assets" strict="false"/>
        </service>

        <!-- request path transformer -->
        <service id="chilldev.viewhelpers.path_resolver.request_transformer" class="%chilldev.viewhelpers.path_resolver.request_transformer.class%">
            <tag name="chilldev.viewhelpers.path_transformer" prefix="base"/>
            <argument type="service" id="templating.globals"/>
        </service>
    </services>
</container>
