Sha256: b31e23772bbab3abc292bffd72737fd1f36a1d0e8435b4188cc266e953118cca

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

<% app_name = Rails.application.class.to_s.split('::').first %>

class SeedTray
    constructor: () ->
        if window.Turbolinks != undefined
            $(window).on "page:change", => @ready()
        else
            $(@ready)
        @root = <%= app_name %>

    # 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: ->

<%= app_name %>.delegator = new SeedTray()

Version data entries

1 entries across 1 versions & 1 rubygems

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