Sha256: 9dfa42bd307400c2385f89334086de0798ce1a96b7efa2efbbf6d9e05231096b

Contents?: true

Size: 1.46 KB

Versions: 15

Compression:

Stored size: 1.46 KB

Contents

require "panda_pal/engine"
require 'panda_pal/plugins'
require 'panda_pal/helpers'

module PandaPal
  class LtiNavigationInUse < StandardError;end
  class NotMounted < StandardError;end

  @@lti_navigation = {}
  @@staged_navigation = {}
  @@lti_options = {}
  @@lti_environments = {}
  @@lti_custom_params = {}

  def self.lti_options= lti_options
    @@lti_options = lti_options
  end

  def self.lti_options
    @@lti_options.deep_dup
  end

  def self.lti_environments=(lti_environments)
    @@lti_environments = lti_environments
  end

  def self.lti_environments
    @@lti_environments.deep_dup
  end

  def self.lti_custom_params=(custom_params)
    @@lti_custom_params = custom_params
  end

  def self.lti_custom_params
    @@lti_custom_params.deep_dup
  end

  def self.register_navigation(navigation)
    @@lti_navigation[navigation] ||= {}
  end

  def self.stage_navigation(navigation, options)
    @@staged_navigation[navigation] = {} unless @@staged_navigation.has_key?(navigation)
    @@staged_navigation[navigation].merge!(options)
  end

  def self.lti_paths
    @@lti_navigation.deep_dup
  end

  def self.propagate_lti_navigation
    @@staged_navigation.each do |k,v|
      lti_navigation(k,v)
      @@staged_navigation.delete(k)
    end
  end

  private

  def self.lti_navigation(navigation, options)
    raise "lti navigation '#{navigation}' has not been registered!" unless @@lti_navigation.has_key?(navigation)
    @@lti_navigation[navigation].merge!(options)
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
panda_pal-2.0.1 lib/panda_pal.rb
panda_pal-2.0.0 lib/panda_pal.rb
panda_pal-1.0.5 lib/panda_pal.rb
panda_pal-1.0.4 lib/panda_pal.rb
panda_pal-1.0.3 lib/panda_pal.rb
panda_pal-1.0.2 lib/panda_pal.rb
panda_pal-1.0.1 lib/panda_pal.rb
panda_pal-0.1.0 lib/panda_pal.rb
panda_pal-1.0.0 lib/panda_pal.rb
panda_pal-0.0.8 lib/panda_pal.rb
panda_pal-0.0.7 lib/panda_pal.rb
panda_pal-0.0.6 lib/panda_pal.rb
panda_pal-0.0.5 lib/panda_pal.rb
panda_pal-0.0.4 lib/panda_pal.rb
panda_pal-0.0.3 lib/panda_pal.rb