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] @root[controller].ready() else console.error "Couldn't find #{@root.name}.#{controller}.ready()." if @root[controller][action] @root[controller][action].ready() console.info "Executed #{@root.name}.#{controller}.#{action}.ready()." else console.error "Couldn't find #{@root.name}.#{controller}.#{action}.ready()." site_wide_ready: -> <%= Rails.application.class.to_s.split('::').first %>.delegator = new SeedTray()