module PandaPal::Concerns::AbilityHelper
Public Instance Methods
Source
# File lib/panda_pal/concerns/ability_helper.rb, line 8 def cache_on_session(method_sym) mthd = instance_method(mthd_sym) pmthd_sym = :"_scache_#{mthd_sym}" alias_method pmthd_sym, mthd_sym private pmthd_sym class_eval <<~RUBY def #{method_sym}() cache_on_session(:#{pmthd_sym}) do #{pmthd_sym}() end end RUBY method_sym end
Source
# File lib/panda_pal/concerns/ability_helper.rb, line 54 def is_lti_launch? panda_pal_session.present? end
Source
# File lib/panda_pal/concerns/ability_helper.rb, line 28 def panda_pal_session unless defined?(@panda_pal_session) || @controller.present? || method(:panda_pal_session).owner == PandaPal::Concerns::AbilityHelper raise "Ability class needs to set @panda_pal_session or @controller to use this feature" end @panda_pal_session = @controller.current_panda_session unless defined?(@panda_pal_session) if @panda_pal_session.is_a?(Hash) # This is a breaking-change to CanvasSync, but not to PandaPal raise "Ability#panda_pal_session/@panda_pal_session should now return a PandaPal::Session object, not a Hash" end @panda_pal_session end
@return PandaPal::Session
Source
# File lib/panda_pal/concerns/ability_helper.rb, line 43 def rails_session unless defined?(@rails_session) || @controller.present? || method(:rails_session).owner == PandaPal::Concerns::AbilityHelper raise "Ability class needs to set @rails_session or @controller to use this feature" end @rails_session ||= @controller.session unless defined?(@rails_session) end