Sha256: 0a34ef09a697a425fe758cd0b888c184553251f71399a7ce60bd08bc29e34931

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

class SeedTray
    constructor: () ->
        if window.Turbolinks != undefined
            $(window).on "page:change", => @ready()
        else
            $(@ready)
        @root = <%= Rails.application.class.to_s.split('::').first %>

    # Dynamically delegate ready to controller#action specific ready methods
    ready: =>
        #  Run the page specific ready code
        @delegate_ready()

        # Run the code that should run on every page.
        @site_wide_ready()

    delegate_ready: =>
        controller = $("[data-controller]").data("controller")
        action = $("[data-action").data("action")

        if @root[controller] && ready_defined(@root[controller])
            @root[controller].ready()
        else
            console.info "Skipped #{@root.name}.#{controller}.ready()."

        if @root[controller] && @root[controller][action] && ready_defined(@root[controller][action])
            @root[controller][action].ready()
            console.info "Executed #{@root.name}.#{controller}.#{action}.ready()."
        else
            console.info "Skipped #{@root.name}.#{controller}.#{action}.ready()."

    ready_defined: (object) ->
        object.ready != undefined

    site_wide_ready: ->

<%= Rails.application.class.to_s.split('::').first %>.delegator = new SeedTray()

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
seed_tray-0.2.0 app/assets/javascripts/seed_tray.js.coffee.erb