Sha256: d2e824c1c907385b725d64e001a1953ef1b7bfb5954b2d63acd9607882a81827

Contents?: true

Size: 1.49 KB

Versions: 3

Compression:

Stored size: 1.49 KB

Contents

define 'aura/extensions/routes', (routes) ->

  'use strict'

  # TODO Remove .call null
  # TODO Remove .call null
  loader.require.call null, 'modernizr'
  loader.require.call null, 'ened/vendor/assets/javascripts/lennon/lennon.js'
  query  = loader.require.call null, 'querystring'
  router = null

  # TODO rename to router stationg
  (application) ->
    core     = application.core
    mediator = core.mediator

    # TODO unify router api
    router = new Lennon
      # TODO implement logger api for lennon or change lennon library
      # logger: application.logger
      publishEvent: (name, params) ->

        current_route = window.location.href
        if router.last_route != current_route
          mediator.emit 'route.changed'
          router.last_route = current_route          

        # TODO method parsing (get, delete, put, post)
        mediator.emit name, params

    router.location = (href, process = true) ->
      if Modernizr.history
        window.history.pushState null, null, href
      else
        # TODO parse href and extract path!
        window.location.hash = href

      process and router.process()



    application.core.router = router

    location = Object.create null,
      # TODO cache query parsing
      query:
        get: -> query.parse window.location.search.substring(1)

      toString: -> window.location

    version: '0.2.1'

    initialize: (application) ->
      application.sandbox.location = location

    afterAppStart: (application) ->
      router.process()

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ende-0.2.18 lib/assets/javascripts/aura/extensions/routes.js.coffee
ende-0.2.17 lib/assets/javascripts/aura/extensions/routes.js.coffee
ende-0.2.16 lib/assets/javascripts/aura/extensions/routes.js.coffee