Пример #1
0
    def _parse_block(self, parser, allow_pluralize):
        referenced = []
        buf = []
        while 1:
            if parser.stream.current.type == 'data':
                buf.append(parser.stream.current.value.replace('%', '%%'))
                next(parser.stream)
            elif parser.stream.current.type == 'variable_begin':
                next(parser.stream)
                name = parser.stream.expect('name').value
                referenced.append(name)
                buf.append('%%(%s)s' % name)
                parser.stream.expect('variable_end')
            elif parser.stream.current.type == 'block_begin':
                next(parser.stream)
                if parser.stream.current.test('name:endtrans'):
                    break
                elif parser.stream.current.test('name:pluralize'):
                    if allow_pluralize:
                        break
                    parser.fail(
                        'a translatable section can have only one pluralize section'
                    )
                parser.fail(
                    'control structures in translatable sections are not allowed'
                )
            elif parser.stream.eos:
                parser.fail('unclosed translation block')

        return (referenced, concat(buf))
Пример #2
0
    def _parse_block(self, parser, allow_pluralize):
        """Parse until the next block tag with a given name."""
        referenced = []
        buf = []
        while 1:
            if parser.stream.current.type == 'data':
                buf.append(parser.stream.current.value.replace('%', '%%'))
                next(parser.stream)
            elif parser.stream.current.type == 'variable_begin':
                next(parser.stream)
                name = parser.stream.expect('name').value
                referenced.append(name)
                buf.append('%%(%s)s' % name)
                parser.stream.expect('variable_end')
            elif parser.stream.current.type == 'block_begin':
                next(parser.stream)
                if parser.stream.current.test('name:endtrans'):
                    break
                elif parser.stream.current.test('name:pluralize'):
                    if allow_pluralize:
                        break
                    parser.fail('a translatable section can have only one '
                                'pluralize section')
                parser.fail('control structures in translatable sections are '
                            'not allowed')
            elif parser.stream.eos:
                parser.fail('unclosed translation block')
            else:
                assert False, 'internal parser error'

        return referenced, concat(buf)
Пример #3
0
 def macro():
     t_1 = []
     pass
     t_1.append(
         u'\n    <ul class="xoxo">\n\n      <li id="section-6" class="widget-container section-widget">\n        <a title= "Congregate Meal Sites" href="http://www.mowtest.com/congregate-meal-sites/">\n          <img src="/assets/img/static/mow/dining_out_sidebar.gif" width="203" height="74" class=\'image asset\' data-asset-key=\'dining_out_sidebar\' data-asset-package=\'mow\' />\n        </a>\n        <br/><br/>\n        <a title="Home Delivered Meals" href="http://www.mowtest.com/home-delivered-meals/">\n          <img src="/assets/img/static/mow/dining_home_sidebar.gif" width="203" height="74" class=\'image asset\' data-asset-key=\'dining_out_sidebar\' data-asset-package=\'mow\' />\n        </a>\n        <br/><br/>\n        <a title="What\'s for Lunch?" href="http://www.mowtest.com/documents/menu.pdf">\n          <img src="/assets/img/static/mow/what_for_lunch_sidebar.gif" width="203" height="74" class=\'image asset\' data-asset-key=\'whats_for_lunch\' data-asset-package=\'mow\' />\n        </a>\n        <br/><br/>\n        <a title="Make a Donation" href="http://www.mowtest.com/making-a-donation/">\n          <img src="/assets/img/static/mow/donate_sidebar.gif" width="203" height="74" class=\'image asset\' data-asset-key=\'make_a_donation\' data-asset-package=\'mow\' />\n        </a>\n      </li>\n\n    </ul>\n  ', 
     )
     return concat(t_1)
Пример #4
0
    def _parse_block(self, parser, allow_pluralize):
        """Parse until the next block tag with a given name."""
        referenced = []
        buf = []
        while 1:
            if parser.stream.current.type is "data":
                buf.append(parser.stream.current.value.replace("%", "%%"))
                parser.stream.next()
            elif parser.stream.current.type is "variable_begin":
                parser.stream.next()
                name = parser.stream.expect("name").value
                referenced.append(name)
                buf.append("%%(%s)s" % name)
                parser.stream.expect("variable_end")
            elif parser.stream.current.type is "block_begin":
                parser.stream.next()
                if parser.stream.current.test("name:endtrans"):
                    break
                elif parser.stream.current.test("name:pluralize"):
                    if allow_pluralize:
                        break
                    parser.fail("a translatable section can have only one " "pluralize section")
                parser.fail("control structures in translatable sections are " "not allowed")
            elif parser.stream.eos:
                parser.fail("unclosed translation block")
            else:
                assert False, "internal parser error"

        return referenced, concat(buf)
Пример #5
0
    def _parse_block(self, parser, allow_pluralize):
        """Parse until the next block tag with a given name."""
        referenced = []
        buf = []
        while 1:
            if parser.stream.current.type == "data":
                buf.append(parser.stream.current.value.replace("%", "%%"))
                next(parser.stream)
            elif parser.stream.current.type == "variable_begin":
                next(parser.stream)
                name = parser.stream.expect("name").value
                referenced.append(name)
                buf.append("%%(%s)s" % name)
                parser.stream.expect("variable_end")
            elif parser.stream.current.type == "block_begin":
                next(parser.stream)
                if parser.stream.current.test("name:endtrans"):
                    break
                elif parser.stream.current.test("name:pluralize"):
                    if allow_pluralize:
                        break
                    parser.fail(
                        "a translatable section can have only one " "pluralize section"
                    )
                parser.fail(
                    "control structures in translatable sections are " "not allowed"
                )
            elif parser.stream.eos:
                parser.fail("unclosed translation block")
            else:
                assert False, "internal parser error"

        return referenced, concat(buf)
Пример #6
0
 def macro():
     t_2 = []
     pass
     t_2.append(
         u'\n        <table id="content_table">\n          <tr>\n            <td width="150">\n              <img src="/assets/img/static/mow/hm_whatsnew_header.png" width="132" height="86" />\n            </td>\n            <td class="new-items">\n              <p>Watch our latest 30-second TV commercial for Meals On Wheels of Sacramento County.</p>\n              <p>\n                <iframe src="http://player.vimeo.com/video/23270002?title=0&amp;byline=0&amp;portrait=0" width="300" height="200" frameborder="0"></iframe>\n              </p>\n              <hr/>\n              <p>Meals on Wheels by ACC was featured on Sacramento &amp; Co. <br/>View the video <a href="http://www.news10.net/news/local/story.aspx?storyid=142700"><b>&#8216;Meals on Wheels&#8217; Rolls Again</b></a>.\n              </p>\n              <hr/>\n            </td>\n          </tr>\n        </table>\n      ', 
     )
     return concat(t_2)
Пример #7
0
 def macro():
     t_2 = []
     pass
     t_2.append(
         u'\n\n\t                    <a title="Home" href="http://mowtest.com/">Home</a>&nbsp;|&nbsp;\n\t                    <a title="About Us" href="http://mowtest.com/what-we-do/">About Us</a>&nbsp;|&nbsp;\n\t                    <a title="Become a Volunteer" href="http://mowtest.com/volunteer/">Become a Volunteer</a>&nbsp;|&nbsp;\n\t                    <a title="If You Need Meals" href="http://mowtest.com/if-you-need-meals/">If You Need Meals</a>&nbsp;|&nbsp;\n\t                    <a title="Support Our Work" href="http://mowtest.com/support-our-work/">Support Our Work</a>\n\t                    <br/>\n\t                    <a title="FAQ" href="http://mowtest.com/faq/">FAQ</a>&nbsp;|&nbsp;\n\t                    <a title="Media" href="http://mowtest.com/media/">Media</a>&nbsp;|&nbsp;\n\t                    <a title="Resources" href="http://mowtest.com/resources/">Resources</a>&nbsp;|&nbsp;\n\t                    <a title="Contact Us" href="http://mowtest.com/contact/">Contact Us</a>\n\t                    <br/><br/>\n\t                    Copyright \xc2\xa9 2010 Meals on Wheels by ACC Inc.\n\t                    <br/>\n\t                    All Rights Reserved.\n\t                ',
     )
     return concat(t_2)
Пример #8
0
    def _parse_block(self, parser, allow_pluralize):
        """Parse until the next block tag with a given name."""
        referenced = []
        buf = []
        while 1:
            if parser.stream.current.type == 'data':
                buf.append(parser.stream.current.value.replace('%', '%%'))
                next(parser.stream)
            elif parser.stream.current.type == 'variable_begin':
                next(parser.stream)
                name = parser.stream.expect('name').value
                referenced.append(name)
                buf.append('%%(%s)s' % name)
                parser.stream.expect('variable_end')
            elif parser.stream.current.type == 'block_begin':
                next(parser.stream)
                if parser.stream.current.test('name:endtrans'):
                    break
                elif parser.stream.current.test('name:pluralize'):
                    if allow_pluralize:
                        break
                    parser.fail('a translatable section can have only one '
                                'pluralize section')
                parser.fail('control structures in translatable sections are '
                            'not allowed')
            elif parser.stream.eos:
                parser.fail('unclosed translation block')
            else:
                assert False, 'internal parser error'

        return referenced, concat(buf)
Пример #9
0
 def macro():
     t_2 = []
     pass
     t_2.append(
         u'\n\n\t                    <a title="Home" href="http://mowtest.com/">Home</a>&nbsp;|&nbsp;\n\t                    <a title="About Us" href="http://mowtest.com/what-we-do/">About Us</a>&nbsp;|&nbsp;\n\t                    <a title="Become a Volunteer" href="http://mowtest.com/volunteer/">Become a Volunteer</a>&nbsp;|&nbsp;\n\t                    <a title="If You Need Meals" href="http://mowtest.com/if-you-need-meals/">If You Need Meals</a>&nbsp;|&nbsp;\n\t                    <a title="Support Our Work" href="http://mowtest.com/support-our-work/">Support Our Work</a>\n\t                    <br/>\n\t                    <a title="FAQ" href="http://mowtest.com/faq/">FAQ</a>&nbsp;|&nbsp;\n\t                    <a title="Media" href="http://mowtest.com/media/">Media</a>&nbsp;|&nbsp;\n\t                    <a title="Resources" href="http://mowtest.com/resources/">Resources</a>&nbsp;|&nbsp;\n\t                    <a title="Contact Us" href="http://mowtest.com/contact/">Contact Us</a>\n\t                    <br/><br/>\n\t                    Copyright \xc2\xa9 2010 Meals on Wheels by ACC Inc.\n\t                    <br/>\n\t                    All Rights Reserved.\n\t                '
     )
     return concat(t_2)
Пример #10
0
 def macro():
     t_1 = []
     pass
     t_1.append(
         u'\n\t                      7311 Greenhaven Drive, Ste. 190, Sacramento CA 95831<br/>\n\t                      Voice: (916) 444-9533<br/>\n\t                      TDD: (916) 394-9155<br/>\n\t                      Toll free: (877) 434-8075<br/>\n\t                      Fax: (916) 394-9156\n\t                ',
     )
     return concat(t_1)
Пример #11
0
 def macro():
     t_1 = []
     pass
     t_1.append(
         u"\n\t                      7311 Greenhaven Drive, Ste. 190, Sacramento CA 95831<br/>\n\t                      Voice: (916) 444-9533<br/>\n\t                      TDD: (916) 394-9155<br/>\n\t                      Toll free: (877) 434-8075<br/>\n\t                      Fax: (916) 394-9156\n\t                "
     )
     return concat(t_1)
Пример #12
0
 def macro():
     t_2 = []
     pass
     t_2.append(
         u'\n\t                  <table id="contact_table">\n\t                    <tr>\n\t                      <td class="text-right">&copy;Address:</td>\n\t                      <td>\n\t                      <b>Meals on Wheels by ACC</b><br />\n\t                      7311 Greenhaven Drive, Ste. 190<br />\n\t                      Sacramento CA 95831</td>\n\t                    </tr>\n\t                    <tr>\n\t                      <td class="text-right">Voice:</td>\n\t                      <td>(916) 444-9533</td>\n\t                    </tr>\n\t                    <tr>\n\t                      <td class="text-right">TDD:</td>\n\t                      <td>(916) 394-9155</td>\n\t                    </tr>\n\t                    <tr>\n\t                      <td class="text-right">Toll Free: </td>\n\t                      <td>(877) 434-8075</td>\n\t                    </tr>\n\t                  </table>\n\t              ', 
     )
     return concat(t_2)
Пример #13
0
 def macro():
     t_1 = []
     pass
     t_1.append(
         u'\n\t              <a href="http://www.mowtest.com" title="Meals on Wheels" rel="home">\n\t                <img src="/assets/img/static/mow/logo_meals_on_wheels.png" width="190" height="117"/>\n\t              </a>\n\t              ', 
     )
     return concat(t_1)
Пример #14
0
    def _parse_block(self, parser, allow_pluralize):
        referenced = []
        buf = []
        while 1:
            if parser.stream.current.type == 'data':
                buf.append(parser.stream.current.value.replace('%', '%%'))
                next(parser.stream)
            elif parser.stream.current.type == 'variable_begin':
                next(parser.stream)
                name = parser.stream.expect('name').value
                referenced.append(name)
                buf.append('%%(%s)s' % name)
                parser.stream.expect('variable_end')
            elif parser.stream.current.type == 'block_begin':
                next(parser.stream)
                if parser.stream.current.test('name:endtrans'):
                    break
                elif parser.stream.current.test('name:pluralize'):
                    if allow_pluralize:
                        break
                    parser.fail('a translatable section can have only one pluralize section')
                parser.fail('control structures in translatable sections are not allowed')
            elif parser.stream.eos:
                parser.fail('unclosed translation block')

        return (referenced, concat(buf))
Пример #15
0
 def macro(l_config):
     t_1 = []
     pass
     if environment.getattr(l_config, 'enable'):
         pass
         t_1.extend((
             u"var _gaq = _gaq || [];\n\t  _gaq.push(['_setAccount', '", 
             to_string(environment.getattr(l_config, 'account_id')), 
             u"']);\n\t  _gaq.push(['_trackPageview']);\n\n\t  (function() {\n\t    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n\t    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n\t    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n\t  })();", 
         ))
     return concat(t_1)
Пример #16
0
 def macro(l_config):
     t_1 = []
     pass
     if environment.getattr(l_config, 'enable'):
         pass
         t_1.extend((
             u"var _gaq = _gaq || [];\n\t  _gaq.push(['_setAccount', '",
             to_string(environment.getattr(l_config, 'account_id')),
             u"']);\n\t  _gaq.push(['_trackPageview']);\n\n\t  (function() {\n\t    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n\t    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n\t    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n\t  })();",
         ))
     return concat(t_1)
Пример #17
0
 def macro(l_name, l_caller):
     t_1 = []
     pass
     if l_caller:
         pass
         t_1.append(u'\n\t\t', )
         l_off = context.resolve('off')
         l_page = context.resolve('page')
         pass
         t_2 = context.eval_ctx.save()
         context.eval_ctx.autoescape = l_off
         t_1.extend((
             (context.eval_ctx.autoescape and escape
              or to_string)((context.eval_ctx.autoescape and Markup
                             or identity)(u'\n\t\t\t')),
             (context.eval_ctx.autoescape and escape
              or to_string)(context.call(
                  environment.getattr(
                      environment.getattr(l_page, 'cms'),
                      'retrieve_content_fragment'), l_name, l_caller)),
             (context.eval_ctx.autoescape and escape
              or to_string)((context.eval_ctx.autoescape and Markup
                             or identity)(u'\n\t\t')),
         ))
         context.eval_ctx.revert(t_2)
         t_1.append(u'\n\t', )
     else:
         pass
         t_1.append(u'\n\t\t', )
         l_off = context.resolve('off')
         l_page = context.resolve('page')
         pass
         t_3 = context.eval_ctx.save()
         context.eval_ctx.autoescape = l_off
         t_1.extend((
             (context.eval_ctx.autoescape and escape
              or to_string)((context.eval_ctx.autoescape and Markup
                             or identity)(u'\n\t\t\t')),
             (context.eval_ctx.autoescape and escape
              or to_string)(context.call(
                  environment.getattr(
                      environment.getattr(l_page, 'cms'),
                      'retrieve_content_fragment'), l_name)),
             (context.eval_ctx.autoescape and escape
              or to_string)((context.eval_ctx.autoescape and Markup
                             or identity)(u'\n\t\t')),
         ))
         context.eval_ctx.revert(t_3)
         t_1.append(u'\n\t', )
     return concat(t_1)
Пример #18
0
 def macro(l_page, l_transport, l_security):
     t_3 = []
     l_sys = context.resolve('sys')
     l_handler = context.resolve('handler')
     l_util = context.resolve('util')
     l_api = context.resolve('api')
     l_authorized = context.resolve('authorized')
     l_oauth = context.resolve('oauth')
     l_null = context.resolve('null')
     l_channel = context.resolve('channel')
     pass
     t_3.append(
         to_string(t_2(t_1({'platform': {'name': environment.getattr(environment.getattr(environment.getattr(l_util, 'config'), 'project'), 'name'), 'version': environment.getattr(l_sys, 'version'), 'origindc': environment.getattr(l_util, 'datacenter'), 'instance': environment.getattr(l_util, 'instance'), 'debug': (True if environment.getattr(environment.getattr(l_util, 'config'), 'debug') else False)}, 'debug': {'logging': (environment.getattr(environment.getattr(l_util, 'config'), 'debug') or context.call(environment.getattr(environment.getattr(l_api, 'users'), 'is_current_user_admin'))), 'eventlog': environment.getattr(environment.getattr(l_util, 'config'), 'debug'), 'verbose': environment.getattr(environment.getattr(l_util, 'config'), 'debug'), 'strict': False}, 'push': ({'enabled': (True if environment.getattr(l_channel, 'token') else False), 'token': (environment.getattr(l_channel, 'token') if environment.getattr(l_channel, 'token') else l_null), 'timeout': ((environment.getattr(environment.getattr(l_channel, '_TTL'), 'seconds') / 60) if l_channel else l_null)} if l_channel else {}), 'user': ({'email': l_null, 'is_user_admin': l_null, 'nickname': l_null} if environment.getattr(l_security, 'current_user') != None else False), 'session': ({'blob': context.call(environment.getattr(environment.getattr(l_handler, 'session'), '_encode_session'))} if environment.getattr(l_handler, 'session') else {}), 'media': ({'key': environment.getattr(environment.getattr(l_page, 'media'), 'key'), 'ref': environment.getattr(environment.getattr(l_page, 'media'), 'ref'), 'name': environment.getattr(environment.getattr(l_page, 'media'), 'name')} if environment.getattr(l_page, 'media') else {'ref': None}), 'oauth': (({'id': environment.getattr(l_oauth, 'fbid')} if l_authorized else {'redirect': environment.getattr(l_oauth, 'redirect'), 'mode': environment.getattr(l_oauth, 'mode')}) if l_oauth else {}), 'services': {'endpoint': context.call(environment.getattr('://', 'join'), [(('https' if environment.getattr(l_handler, 'force_https') else False) or environment.getattr(environment.getattr(l_handler, 'request'), 'scheme')), environment.getattr(environment.getattr(l_transport, 'services'), 'endpoint')]), 'consumer': environment.getattr(environment.getattr(l_transport, 'services'), 'consumer'), 'scope': environment.getattr(environment.getattr(l_transport, 'services'), 'scope'), 'apis': context.call(environment.getattr(environment.getattr(l_transport, 'services'), 'make_object'), environment.getattr(l_page, 'services'))}}))), 
     )
     return concat(t_3)
Пример #19
0
 def macro(l_name, l_caller):
     t_1 = []
     pass
     if l_caller:
         pass
         t_1.append(
             u'\n\t\t', 
         )
         l_off = context.resolve('off')
         l_page = context.resolve('page')
         pass
         t_2 = context.eval_ctx.save()
         context.eval_ctx.autoescape = l_off
         t_1.extend((
             (context.eval_ctx.autoescape and escape or to_string)((context.eval_ctx.autoescape and Markup or identity)(u'\n\t\t\t')), 
             (context.eval_ctx.autoescape and escape or to_string)(context.call(environment.getattr(environment.getattr(l_page, 'cms'), 'retrieve_content_fragment'), l_name, l_caller)), 
             (context.eval_ctx.autoescape and escape or to_string)((context.eval_ctx.autoescape and Markup or identity)(u'\n\t\t')), 
         ))
         context.eval_ctx.revert(t_2)
         t_1.append(
             u'\n\t', 
         )
     else:
         pass
         t_1.append(
             u'\n\t\t', 
         )
         l_off = context.resolve('off')
         l_page = context.resolve('page')
         pass
         t_3 = context.eval_ctx.save()
         context.eval_ctx.autoescape = l_off
         t_1.extend((
             (context.eval_ctx.autoescape and escape or to_string)((context.eval_ctx.autoescape and Markup or identity)(u'\n\t\t\t')), 
             (context.eval_ctx.autoescape and escape or to_string)(context.call(environment.getattr(environment.getattr(l_page, 'cms'), 'retrieve_content_fragment'), l_name)), 
             (context.eval_ctx.autoescape and escape or to_string)((context.eval_ctx.autoescape and Markup or identity)(u'\n\t\t')), 
         ))
         context.eval_ctx.revert(t_3)
         t_1.append(
             u'\n\t', 
         )
     return concat(t_1)
Пример #20
0
 def macro(l_services, l_config, l_page):
     t_4 = []
     l_null = context.resolve('null')
     pass
     t_4.append(
         u'$(document).ready(function (){\n\n\t', 
     )
     for event in context.blocks['platform_statement'][0](context):
         t_4.append(event)
     t_4.append(
         u'\n\n\t', 
     )
     if l_services != l_null:
         pass
         t_4.append(
             u'\n\t$.apptools.api.rpc.factory([', 
         )
         l_action = l_cfg = l_opts = l_service = missing
         l_util = context.resolve('util')
         l_enumerate = context.resolve('enumerate')
         for (l_service, l_action, l_cfg, l_opts), l_loop in LoopContext(l_services):
             pass
             t_4.extend((
                 u"{\n\t\t\t\tname: '", 
                 to_string(l_service), 
                 u"',\n\t\t\t\tbase_uri: '", 
                 to_string(l_action), 
                 u"',\n\t\t\t\tmethods: [", 
             ))
             t_5 = l_loop
             l_i = l_method = missing
             l_len = context.resolve('len')
             for (l_i, l_method) in context.call(l_enumerate, environment.getattr(l_cfg, 'methods')):
                 pass
                 t_4.extend((
                     u"'", 
                     to_string(l_method), 
                     u"'", 
                 ))
                 if l_i != (context.call(l_len, environment.getattr(l_cfg, 'methods')) - 1):
                     pass
                     t_4.append(
                         u',', 
                     )
             l_loop = t_5
             l_i = l_method = missing
             t_4.extend((
                 u'],\n\t\t\t\tconfig: ', 
                 to_string(t_2(context.call(environment.getattr(environment.getattr(environment.getattr(l_util, 'converters'), 'json'), 'dumps'), l_opts))), 
                 u'\n\t\t\t}', 
             ))
             if (not environment.getattr(l_loop, 'last')):
                 pass
                 t_4.append(
                     u',', 
                 )
         l_action = l_cfg = l_opts = l_service = missing
         t_4.append(
             u']);\n\t', 
         )
     t_4.append(
         u'\n\n\t', 
     )
     if environment.getattr(l_page, 'open_channel'):
         pass
         t_4.append(
             u'\n\t', 
         )
         if environment.getattr(l_page, 'channel_token'):
             pass
             t_4.extend((
                 u'\n\t\t$.apptools.push.channel.establish("', 
                 to_string(environment.getattr(l_page, 'channel_token')), 
                 u'").listen();\n\t', 
             ))
         t_4.append(
             u'\n\t', 
         )
     t_4.append(
         u'\n\n\t', 
     )
     for event in context.blocks['userobj'][0](context):
         t_4.append(event)
     t_4.append(
         u"\n\n\t$.apptools.events.trigger('API_READY');\n\n});", 
     )
     return concat(t_4)
Пример #21
0
 def macro(l_services, l_config):
     t_1 = []
     l_sys = context.resolve('sys')
     pass
     t_1.append(
         u'$(document).ready(function (){\n\n\t', 
     )
     for event in context.blocks['platform_statement'][0](context):
         t_1.append(event)
     t_1.append(
         u'\n\n\t', 
     )
     l_action = l_cfg = l_opts = l_service = missing
     l_enumerate = context.resolve('enumerate')
     for (l_service, l_action, l_cfg, l_opts) in l_services:
         pass
         t_1.extend((
             u"$.apptools.api.rpc.factory('", 
             to_string(l_service), 
             u"', '", 
             to_string(l_action), 
             u"', [", 
         ))
         l_i = l_method = missing
         l_len = context.resolve('len')
         for (l_i, l_method) in context.call(l_enumerate, environment.getattr(l_cfg, 'methods')):
             pass
             t_1.extend((
                 u"'", 
                 to_string(l_method), 
                 u"'", 
             ))
             if l_i != (context.call(l_len, environment.getattr(l_cfg, 'methods')) - 1):
                 pass
                 t_1.append(
                     u',', 
                 )
         l_i = l_method = missing
         t_1.append(
             u'],', 
         )
         l_util = context.resolve('util')
         pass
         t_2 = context.eval_ctx.save()
         context.eval_ctx.autoescape = False
         t_1.append(
             to_string(context.call(environment.getattr(environment.getattr(environment.getattr(l_util, 'converters'), 'json'), 'dumps'), l_opts)), 
         )
         context.eval_ctx.revert(t_2)
         t_1.append(
             u');', 
         )
     l_action = l_cfg = l_opts = l_service = missing
     t_1.append(
         u'\n\n\t', 
     )
     for event in context.blocks['userobj'][0](context):
         t_1.append(event)
     t_1.extend((
         u'\n\n\t_PLATFORM_VERSION = "', 
         to_string(environment.getattr(l_sys, 'version')), 
         u'";\n\t$.apptools.events.trigger(\'API_READY\');\n\n});', 
     ))
     return concat(t_1)