class Tension::Context
Attributes
action[R]
controller_name[R]
Public Class Methods
new(controller_path)
click to toggle source
# File lib/tension/context.rb, line 5 def initialize(controller_path) @controller_name = controller_path.camelize unless @controller_name.safe_constantize @controller_name << "Controller" end end
Public Instance Methods
action_asset(action, type)
click to toggle source
Returns the action-level asset for the given action name and type, or nil.
# File lib/tension/context.rb, line 34 def action_asset(action, type) Tension::Utils.find_asset( controller: controller.controller_path, action: action, type: type ) end
controller()
click to toggle source
# File lib/tension/context.rb, line 13 def controller controller_name.constantize end
controller_asset(type)
click to toggle source
Returns the controller-level asset for the given type, or nil.
# File lib/tension/context.rb, line 40 def controller_asset(type) Tension::Utils.find_asset( controller: controller.controller_path, type: type ) end
css(action)
click to toggle source
Locates the best stylesheet for the given action name. Aliased as, for example, `#index( Tension::CSS )` or `#show(:css)`.
# File lib/tension/context.rb, line 20 def css(action) best_asset( action, Tension::CSS ) end
global_asset(type)
click to toggle source
Returns the global asset for the given type (application.{css,js}).
# File lib/tension/context.rb, line 46 def global_asset(type) Tension::Utils.global_asset(type) end
has_action?(action_name)
click to toggle source
# File lib/tension/context.rb, line 50 def has_action?(action_name) controller.action_methods.include?(action_name) end
js(action)
click to toggle source
Locates the best JavaScript for the given action name. Aliased as, for example, `#index( Tension::JS )` or `#show(:js)`.
# File lib/tension/context.rb, line 27 def js(action) best_asset( action, Tension::JS ) end
Private Instance Methods
best_asset(action, type)
click to toggle source
Locates the best asset for the given action name and type.
# File lib/tension/context.rb, line 72 def best_asset(action, type) action_asset(action, type) || controller_asset(type) end
method_missing(method_sym, *args)
click to toggle source
Calls superclass method
# File lib/tension/context.rb, line 76 def method_missing(method_sym, *args) action = method_sym.to_s type = args.first if has_action?(action) best_asset(action, type) else super end end