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:
Cody Cutrer 2017-03-08 11:21:16 -07:00
parent cef373901b
commit 7b024780c6
10 changed files with 16 additions and 31 deletions

View File

@ -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

View File

@ -1,4 +1,4 @@
require File.expand_path(File.dirname(__FILE__) + '/common')
require_relative 'common'
module AcademicBenchmarks
module Standards

View File

@ -1,4 +1,4 @@
require File.expand_path(File.dirname(__FILE__) + '/common')
require_relative 'common'
module AcademicBenchmarks
module Standards

View File

@ -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(

View File

@ -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',

View File

@ -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

View File

@ -0,0 +1,7 @@
module AcademicBenchmark::OutcomeData
class Base
def initialize(options={})
@options = OpenStruct.new(options)
end
end
end

View File

@ -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?

View File

@ -1,6 +1,6 @@
module AcademicBenchmark
module OutcomeData
class FromFile < Data
class FromFile < Base
delegate :archive_file, to: :@options
def data

View File

@ -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