Sha256: 4e31cc930435f97d4ea0dc2d4d3bb5e3e21b4563c20c678f3404f28966414b8f
Contents?: true
Size: 1.72 KB
Versions: 3
Compression:
Stored size: 1.72 KB
Contents
require_dependency "coalescing_panda/application_controller" module CoalescingPanda class LtiController < ApplicationController def lti_config lti_options = CoalescingPanda.lti_options lti_nav = CoalescingPanda.lti_paths platform = 'canvas.instructure.com' host = "#{request.scheme}://#{request.host_with_port}" tc = IMS::LTI::ToolConfig.new(:title => lti_options[:title], :launch_url => ("#{host}#{lti_options[:launch_route]}") || 'ABC') tc.set_ext_param(platform, :domain, request.host) tc.set_ext_param(platform, :privacy_level, 'public') if lti_options.has_key?(:custom_fields) tc.set_ext_param(platform, :custom_fields, lti_options[:custom_fields]) lti_options[:custom_fields].each do |k, v| tc.set_ext_param(platform, k, v) end end lti_nav.each do |k, v| tc.set_ext_param(platform, setting_name(k.to_s), ext_params(v)) end #strip the launch url xml = tc.to_xml xml = xml.sub(/<blti:launch_url>.*<\/blti:launch_url>/, '') if lti_options[:launch_route].blank? render :xml => xml end def styleguide render file: 'coalescing_panda/styleguide/styleguide.html' end def launch render 'coalescing_panda/launch' end def start_session session['started'] = true redirect_to CGI::unescape(params['referer']) end private def setting_name(name) tail = '' if %w(course account user).include?(name) tail = '_navigation' unless name.include? '_navigation' end (name+tail).to_sym end def ext_params(options) url = options.delete(:url) options[:url] = main_app.send(url+'_url') options end end end
Version data entries
3 entries across 3 versions & 1 rubygems