refactor AcademicBenchmark to fix clean up loading
it didn't work at all if the code was ever reloaded Change-Id: I988dca7f9960bdcd905c01b056c4bd3eef83b9e5 Reviewed-on: https://gerrit.instructure.com/104442 Tested-by: Jenkins Reviewed-by: Simon Williams <simon@instructure.com> Product-Review: Cody Cutrer <cody@instructure.com> QA-Review: Cody Cutrer <cody@instructure.com>
This commit is contained in:
parent
cef373901b
commit
7b024780c6
|
@ -2,20 +2,12 @@ require 'net/http'
|
|||
|
||||
require 'cgi'
|
||||
|
||||
require 'academic_benchmark_v1'
|
||||
|
||||
require 'academic_benchmark/engine'
|
||||
require 'academic_benchmark/cli_tools'
|
||||
|
||||
require 'academic_benchmark/ab_gem_extensions/standard'
|
||||
require 'academic_benchmark/ab_gem_extensions/authority'
|
||||
require 'academic_benchmark/ab_gem_extensions/document'
|
||||
|
||||
require 'academic_benchmark/outcome_data'
|
||||
require 'academic_benchmark/outcome_data/from_api'
|
||||
require 'academic_benchmark/outcome_data/from_file'
|
||||
|
||||
|
||||
module AcademicBenchmark
|
||||
NATIONAL_STANDARDS_TITLE = "National Standards".freeze
|
||||
NATIONAL_STD_CODES = %w[CC NT NRC].freeze
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require File.expand_path(File.dirname(__FILE__) + '/common')
|
||||
require_relative 'common'
|
||||
|
||||
module AcademicBenchmarks
|
||||
module Standards
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require File.expand_path(File.dirname(__FILE__) + '/common')
|
||||
require_relative 'common'
|
||||
|
||||
module AcademicBenchmarks
|
||||
module Standards
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
require 'academic_benchmarks'
|
||||
|
||||
require 'academic_benchmark/ab_gem_extensions/standard'
|
||||
require 'academic_benchmark/ab_gem_extensions/authority'
|
||||
require 'academic_benchmark/ab_gem_extensions/document'
|
||||
|
||||
module AcademicBenchmark
|
||||
class Converter < Canvas::Migration::Migrator
|
||||
def initialize(settings={})
|
||||
|
@ -60,7 +56,7 @@ module AcademicBenchmark
|
|||
if !@archive_file.nil? && settings[:archive_file].nil?
|
||||
settings[:archive_file] = @archive_file
|
||||
end
|
||||
fetcher = Data.load_data(settings)
|
||||
fetcher = OutcomeData.load_data(settings)
|
||||
@_outcome_data = fetcher.data
|
||||
rescue EOFError, APIError => e
|
||||
add_error(
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
module AcademicBenchmark
|
||||
class Engine < ::Rails::Engine
|
||||
initializer "academic_benchmark.canvas_plugin" do
|
||||
require_dependency 'academic_benchmark/converter'
|
||||
require_dependency 'academic_benchmark/converter_v1'
|
||||
config.autoload_paths << File.expand_path(File.join(__FILE__, "../.."))
|
||||
|
||||
config.to_prepare do
|
||||
Canvas::Plugin.register :academic_benchmark_importer, :export_system, {
|
||||
:name => proc { I18n.t(:name, 'Academic Benchmark Importer') },
|
||||
:author => 'Instructure',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
module AcademicBenchmark
|
||||
class Data
|
||||
module OutcomeData
|
||||
def self.load_data(options={})
|
||||
if options.key?(:archive_file)
|
||||
OutcomeData::FromFile.new(options.slice(:archive_file))
|
||||
|
@ -9,9 +9,5 @@ module AcademicBenchmark
|
|||
raise Canvas::Migration::Error, "No outcome file or guid given"
|
||||
end
|
||||
end
|
||||
|
||||
def initialize(options={})
|
||||
@options = OpenStruct.new(options)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
module AcademicBenchmark::OutcomeData
|
||||
class Base
|
||||
def initialize(options={})
|
||||
@options = OpenStruct.new(options)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,6 +1,6 @@
|
|||
module AcademicBenchmark
|
||||
module OutcomeData
|
||||
class FromApi < Data
|
||||
class FromApi < Base
|
||||
def initialize(options={})
|
||||
super(options.merge(AcademicBenchmark.config))
|
||||
unless partner_id.present? && partner_key.present?
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module AcademicBenchmark
|
||||
module OutcomeData
|
||||
class FromFile < Data
|
||||
class FromFile < Base
|
||||
delegate :archive_file, to: :@options
|
||||
|
||||
def data
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
require 'net/http'
|
||||
require 'cgi'
|
||||
|
||||
require 'academic_benchmark/api'
|
||||
require 'academic_benchmark/engine'
|
||||
require 'academic_benchmark/standard'
|
||||
require 'academic_benchmark/cli_tools'
|
||||
|
||||
module AcademicBenchmarkV1
|
||||
def self.import(guid_or_guids, options={})
|
||||
if !AcademicBenchmark.config[:api_key] || AcademicBenchmark.config[:api_key].empty?
|
||||
|
@ -59,4 +54,4 @@ module AcademicBenchmarkV1
|
|||
def self.common_core_setting_key
|
||||
"common_core_outcome_group_id:#{Shard.current.id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue