panda_pal 5.10.1 → 5.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +0 -0
- data/README.md +31 -21
- data/Rakefile +0 -0
- data/app/assets/config/panda_pal_manifest.js +0 -0
- data/app/assets/javascripts/panda_pal/application.js +0 -0
- data/app/assets/javascripts/panda_pal/lti.js +0 -0
- data/app/assets/stylesheets/panda_pal/application.css +0 -0
- data/app/assets/stylesheets/panda_pal/lti.css +0 -0
- data/app/controllers/panda_pal/api_call_controller.rb +0 -0
- data/app/controllers/panda_pal/application_controller.rb +0 -0
- data/app/controllers/panda_pal/lti_controller.rb +0 -0
- data/app/controllers/panda_pal/lti_v1_p0_controller.rb +0 -0
- data/app/controllers/panda_pal/lti_v1_p3_controller.rb +14 -0
- data/app/helpers/panda_pal/application_helper.rb +0 -0
- data/app/jobs/panda_pal/jobs/grade_passback_job.rb +0 -0
- data/app/lib/lti_xml/base_platform.rb +0 -0
- data/app/lib/lti_xml/bridge_platform.rb +0 -0
- data/app/lib/lti_xml/canvas_platform.rb +0 -0
- data/app/lib/panda_pal/launch_url_helpers.rb +0 -0
- data/app/lib/panda_pal/lti_jwt_validator.rb +0 -0
- data/app/models/panda_pal/api_call.rb +0 -0
- data/app/models/panda_pal/organization.rb +3 -39
- data/app/models/panda_pal/organization_concerns/multi_database_sharding.rb +22 -0
- data/app/models/panda_pal/organization_concerns/organization_builder.rb +0 -0
- data/app/models/panda_pal/organization_concerns/settings_validation.rb +0 -0
- data/app/models/panda_pal/organization_concerns/task_scheduling.rb +0 -0
- data/app/models/panda_pal/organization_concerns/tenant_handling.rb +54 -0
- data/app/models/panda_pal/panda_pal_record.rb +0 -0
- data/app/models/panda_pal/platform/canvas.rb +0 -0
- data/app/models/panda_pal/platform.rb +0 -0
- data/app/models/panda_pal/session.rb +28 -13
- data/app/views/layouts/panda_pal/application.html.erb +0 -0
- data/app/views/panda_pal/lti/launch.html.erb +0 -0
- data/app/views/panda_pal/lti_v1_p3/login.html.erb +0 -0
- data/app/views/panda_pal/partials/_auto_submit_form.html.erb +0 -0
- data/config/dev_lti_key.key +0 -0
- data/config/initializers/apartment.rb +202 -3
- data/config/routes.rb +0 -0
- data/db/migrate/20160412205931_create_panda_pal_organizations.rb +0 -0
- data/db/migrate/20160413135653_create_panda_pal_sessions.rb +0 -0
- data/db/migrate/20160425130344_add_panda_pal_organization_to_session.rb +0 -0
- data/db/migrate/20170106165533_add_salesforce_id_to_organizations.rb +0 -0
- data/db/migrate/20171205183457_encrypt_organization_settings.rb +0 -0
- data/db/migrate/20171205194657_remove_old_organization_settings.rb +0 -0
- data/db/migrate/20220721095653_create_panda_pal_api_calls.rb +0 -0
- data/lib/panda_pal/concerns/ability_helper.rb +0 -0
- data/lib/panda_pal/engine.rb +0 -2
- data/lib/panda_pal/helpers/console_helpers.rb +0 -0
- data/lib/panda_pal/helpers/controller_helper.rb +0 -0
- data/lib/panda_pal/helpers/misc_helper.rb +0 -0
- data/lib/panda_pal/helpers/route_helper.rb +0 -0
- data/lib/panda_pal/helpers/secure_headers.rb +0 -0
- data/lib/panda_pal/helpers/session_replacement.rb +0 -0
- data/lib/panda_pal/helpers.rb +0 -0
- data/lib/panda_pal/plugins.rb +0 -0
- data/lib/panda_pal/spec_helper.rb +82 -0
- data/lib/panda_pal/version.rb +1 -1
- data/lib/panda_pal.rb +1 -1
- data/lib/tasks/panda_pal_tasks.rake +0 -0
- data/panda_pal.gemspec +3 -3
- data/spec/controllers/panda_pal/api_call_controller_spec.rb +0 -0
- data/spec/core/apartment_multidb_spec.rb +48 -0
- data/spec/dummy/README.rdoc +0 -0
- data/spec/dummy/Rakefile +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +0 -0
- data/spec/dummy/app/assets/stylesheets/application.css +0 -0
- data/spec/dummy/app/controllers/application_controller.rb +0 -0
- data/spec/dummy/app/helpers/application_helper.rb +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +0 -0
- data/spec/dummy/config/application.rb +0 -0
- data/spec/dummy/config/boot.rb +0 -0
- data/spec/dummy/config/database.yml +6 -2
- data/spec/dummy/config/environment.rb +0 -0
- data/spec/dummy/config/environments/development.rb +0 -0
- data/spec/dummy/config/environments/production.rb +0 -0
- data/spec/dummy/config/environments/test.rb +5 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +0 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -0
- data/spec/dummy/config/initializers/inflections.rb +0 -0
- data/spec/dummy/config/initializers/mime_types.rb +0 -0
- data/spec/dummy/config/initializers/session_store.rb +0 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
- data/spec/dummy/config/locales/en.yml +0 -0
- data/spec/dummy/config/routes.rb +0 -0
- data/spec/dummy/config/secrets.yml +0 -0
- data/spec/dummy/config.ru +0 -0
- data/spec/dummy/db/schema.rb +0 -0
- data/spec/dummy/db/test2_schema.rb +18 -0
- data/spec/dummy/public/404.html +0 -0
- data/spec/dummy/public/422.html +0 -0
- data/spec/dummy/public/500.html +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/panda_pal_organizations.rb +0 -0
- data/spec/factories/panda_pal_sessions.rb +0 -0
- data/spec/models/panda_pal/api_call_spec.rb +1 -1
- data/spec/models/panda_pal/organization/settings_validation_spec.rb +4 -0
- data/spec/models/panda_pal/organization_spec.rb +0 -0
- data/spec/models/panda_pal/session_spec.rb +0 -0
- data/spec/rails_helper.rb +4 -0
- data/spec/spec_helper.rb +0 -1
- metadata +57 -50
- /data/spec/dummy/{bin → app/bin}/bundle +0 -0
- /data/spec/dummy/{bin → app/bin}/rails +0 -0
- /data/spec/dummy/{bin → app/bin}/rake +0 -0
- /data/spec/dummy/{bin → app/bin}/setup +0 -0
File without changes
|
File without changes
|
File without changes
|
data/lib/panda_pal/helpers.rb
CHANGED
File without changes
|
data/lib/panda_pal/plugins.rb
CHANGED
File without changes
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module PandaPal::SpecHelper
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
class_methods do
|
5
|
+
def with_multiple_shards(shards:, preclean_schemas: [], determine_shard: nil, transactional: true)
|
6
|
+
self.use_transactional_tests = transactional
|
7
|
+
|
8
|
+
original_settings = {}
|
9
|
+
|
10
|
+
before :all do
|
11
|
+
if defined?(DatabaseCleaner)
|
12
|
+
original_settings[:cleaner_strategy] = DatabaseCleaner.strategy
|
13
|
+
DatabaseCleaner.strategy = :truncation
|
14
|
+
end
|
15
|
+
|
16
|
+
Apartment.configure do |config|
|
17
|
+
original_settings[:with_multi_server_setup] = config.with_multi_server_setup
|
18
|
+
config.with_multi_server_setup = true
|
19
|
+
end
|
20
|
+
|
21
|
+
shards.each do |k, v|
|
22
|
+
Apartment.shard_configurations[k.to_s] = Apartment.connection_config.merge(database: v)
|
23
|
+
end
|
24
|
+
|
25
|
+
@existing_org_ids = PandaPal::Organization.pluck(:id)
|
26
|
+
|
27
|
+
Apartment::Tenant.reload!
|
28
|
+
|
29
|
+
clean_schemas(preclean_schemas)
|
30
|
+
end
|
31
|
+
|
32
|
+
after :all do
|
33
|
+
Apartment::Tenant.reset
|
34
|
+
|
35
|
+
Apartment.configure do |config|
|
36
|
+
config.with_multi_server_setup = false
|
37
|
+
end
|
38
|
+
|
39
|
+
shards.each do |k, _|
|
40
|
+
Apartment.shard_configurations.delete(k.to_s)
|
41
|
+
end
|
42
|
+
|
43
|
+
PandaPal::Organization.where.not(id: @existing_org_ids).delete_all
|
44
|
+
|
45
|
+
if defined?(DatabaseCleaner)
|
46
|
+
DatabaseCleaner.strategy = original_settings[:cleaner_strategy]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
before :each do
|
51
|
+
clean_schemas(preclean_schemas) unless transactional
|
52
|
+
|
53
|
+
@each_existing_org_ids = PandaPal::Organization.pluck(:id)
|
54
|
+
|
55
|
+
if determine_shard
|
56
|
+
allow_any_instance_of(PandaPal::Organization).to receive(:tenant_name) do |org|
|
57
|
+
shard = determine_shard.call(org)
|
58
|
+
tenant = org.name
|
59
|
+
tenant = "#{shard}:#{tenant}" if shard.present?
|
60
|
+
tenant
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
after :each do
|
66
|
+
Apartment::Tenant.reset
|
67
|
+
PandaPal::Organization.where.not(id: @each_existing_org_ids).destroy_all
|
68
|
+
end
|
69
|
+
|
70
|
+
define_method :clean_schemas do |schemas|
|
71
|
+
PandaPal::Organization.where(name: schemas).delete_all
|
72
|
+
|
73
|
+
schemas.each do |schema|
|
74
|
+
Apartment::Tenant.drop(schema) rescue nil
|
75
|
+
shards.each do |k, v|
|
76
|
+
Apartment::Tenant.drop("#{k}:#{schema}") rescue nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/panda_pal/version.rb
CHANGED
data/lib/panda_pal.rb
CHANGED
File without changes
|
data/panda_pal.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.test_files = Dir["spec/**/*"].reject{|f| f =~ /\/log\//}
|
22
22
|
|
23
23
|
s.add_dependency "rails", ">= 4.2"
|
24
|
-
s.add_dependency 'ros-apartment', '~>
|
24
|
+
s.add_dependency 'ros-apartment', '~> 3.0'
|
25
25
|
s.add_dependency 'ims-lti', '~> 1.2.4'
|
26
26
|
s.add_dependency 'browser', '2.5.0'
|
27
27
|
s.add_dependency 'attr_encrypted', '~> 4.0.0'
|
@@ -30,11 +30,11 @@ Gem::Specification.new do |s|
|
|
30
30
|
s.add_dependency 'jwt'
|
31
31
|
s.add_dependency 'httparty'
|
32
32
|
|
33
|
-
s.add_development_dependency "rails", "~>
|
33
|
+
s.add_development_dependency "rails", "~> 7.0"
|
34
34
|
s.add_development_dependency 'pg'
|
35
35
|
s.add_development_dependency 'sidekiq', "< 7.0"
|
36
36
|
s.add_development_dependency 'sidekiq-scheduler'
|
37
|
-
s.add_development_dependency 'ros-apartment', '~>
|
37
|
+
s.add_development_dependency 'ros-apartment', '~> 3.0'
|
38
38
|
s.add_development_dependency 'ros-apartment-sidekiq', '~> 1.2'
|
39
39
|
s.add_development_dependency 'rspec-rails'
|
40
40
|
s.add_development_dependency 'factory_girl_rails'
|
File without changes
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails_helper'
|
4
|
+
|
5
|
+
RSpec.describe PandaPal::Organization, type: :model do
|
6
|
+
context "across multiple DBs" do
|
7
|
+
with_multiple_shards(
|
8
|
+
shards: { alt: "panda_pal_test2" },
|
9
|
+
preclean_schemas: %w[on_primary on_alt],
|
10
|
+
transactional: false,
|
11
|
+
determine_shard: ->(org) { org.name.include?("alt") ? "alt" : nil }
|
12
|
+
)
|
13
|
+
|
14
|
+
let!(:org1) { create(:panda_pal_organization, name: "on_primary") }
|
15
|
+
let!(:org2) { create(:panda_pal_organization, name: "on_alt") }
|
16
|
+
|
17
|
+
it "successfully creates tenants on multiple shards" do
|
18
|
+
expect(1).to eql(1)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "only creates schemas on the target shard" do
|
22
|
+
org1.switch_tenant do
|
23
|
+
schemas = PandaPal::ApiCall.connection.exec_query("SELECT schema_name FROM information_schema.schemata").pluck("schema_name")
|
24
|
+
expect(schemas).to include("on_primary")
|
25
|
+
expect(schemas).to_not include("on_alt")
|
26
|
+
end
|
27
|
+
org2.switch_tenant do
|
28
|
+
schemas = PandaPal::ApiCall.connection.exec_query("SELECT schema_name FROM information_schema.schemata").pluck("schema_name")
|
29
|
+
expect(schemas).to include("on_alt")
|
30
|
+
expect(schemas).to_not include("on_primary")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "load_async" do
|
35
|
+
it "works across shards" do
|
36
|
+
qs = []
|
37
|
+
PandaPal::Organization.all.each do |org|
|
38
|
+
org.switch_tenant do
|
39
|
+
PandaPal::ApiCall.create!(logic: org.name)
|
40
|
+
qs << PandaPal::ApiCall.select("logic, pg_sleep(0.5)").load_async
|
41
|
+
end
|
42
|
+
end
|
43
|
+
calls = qs.map(&:to_a).flatten
|
44
|
+
expect(calls.pluck(:logic)).to match_array(["on_primary", "on_alt"])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/spec/dummy/README.rdoc
CHANGED
File without changes
|
data/spec/dummy/Rakefile
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/dummy/config/boot.rb
CHANGED
File without changes
|
@@ -14,8 +14,12 @@ development:
|
|
14
14
|
database: panda_pal_development
|
15
15
|
|
16
16
|
test:
|
17
|
-
|
18
|
-
|
17
|
+
test1:
|
18
|
+
<<: *default
|
19
|
+
database: panda_pal_test1
|
20
|
+
test2:
|
21
|
+
<<: *default
|
22
|
+
database: panda_pal_test2
|
19
23
|
|
20
24
|
production:
|
21
25
|
<<: *default
|
File without changes
|
File without changes
|
File without changes
|
@@ -37,6 +37,11 @@ Rails.application.configure do
|
|
37
37
|
# Print deprecation notices to the stderr.
|
38
38
|
config.active_support.deprecation = :stderr
|
39
39
|
|
40
|
+
config.log_level = :debug
|
41
|
+
config.active_record.verbose_query_logs = true
|
42
|
+
config.active_record.async_query_executor = :multi_thread_pool
|
43
|
+
# config.active_record.global_executor_concurrency = 4
|
44
|
+
|
40
45
|
# Raises error for missing translations
|
41
46
|
# config.action_view.raise_on_missing_translations = true
|
42
47
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/dummy/config/routes.rb
CHANGED
File without changes
|
File without changes
|
data/spec/dummy/config.ru
CHANGED
File without changes
|
data/spec/dummy/db/schema.rb
CHANGED
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead
|
2
|
+
# of editing this file, please use the migrations feature of Active Record to
|
3
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# Note that this schema.rb definition is the authoritative source for your
|
6
|
+
# database schema. If you need to create the application database on another
|
7
|
+
# system, you should be using db:schema:load, not running all the migrations
|
8
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
9
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
10
|
+
#
|
11
|
+
# It's strongly recommended that you check this file into your version control system.
|
12
|
+
|
13
|
+
ActiveRecord::Schema.define(version: 2022_07_21_095653) do
|
14
|
+
|
15
|
+
# These are extensions that must be enabled in order to support this database
|
16
|
+
enable_extension "plpgsql"
|
17
|
+
|
18
|
+
end
|
data/spec/dummy/public/404.html
CHANGED
File without changes
|
data/spec/dummy/public/422.html
CHANGED
File without changes
|
data/spec/dummy/public/500.html
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,6 +5,10 @@ module PandaPal
|
|
5
5
|
RSpec.describe OrganizationConcerns::SettingsValidation, type: :model do
|
6
6
|
let!(:org) { create :panda_pal_organization }
|
7
7
|
|
8
|
+
after :all do
|
9
|
+
PandaPal.lti_options[:settings_structure] = nil
|
10
|
+
end
|
11
|
+
|
8
12
|
def set_test_settings_structure
|
9
13
|
PandaPal.lti_options = {
|
10
14
|
title: 'Test App',
|
File without changes
|
File without changes
|
data/spec/rails_helper.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
ActiveRecord::Migration.maintain_test_schema!
|
2
2
|
|
3
|
+
require "panda_pal/spec_helper"
|
4
|
+
|
3
5
|
RSpec.configure do |config|
|
6
|
+
config.include PandaPal::SpecHelper
|
7
|
+
|
4
8
|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
5
9
|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
6
10
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: panda_pal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Instructure CustomDev
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ims-lti
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
145
|
+
version: '7.0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
152
|
+
version: '7.0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: pg
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,14 +198,14 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
201
|
+
version: '3.0'
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
208
|
+
version: '3.0'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: ros-apartment-sidekiq
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,7 +282,7 @@ dependencies:
|
|
282
282
|
- - '='
|
283
283
|
- !ruby/object:Gem::Version
|
284
284
|
version: 2.7.1
|
285
|
-
description:
|
285
|
+
description:
|
286
286
|
email:
|
287
287
|
- pseng@instructure.com
|
288
288
|
executables: []
|
@@ -311,9 +311,11 @@ files:
|
|
311
311
|
- app/lib/panda_pal/lti_jwt_validator.rb
|
312
312
|
- app/models/panda_pal/api_call.rb
|
313
313
|
- app/models/panda_pal/organization.rb
|
314
|
+
- app/models/panda_pal/organization_concerns/multi_database_sharding.rb
|
314
315
|
- app/models/panda_pal/organization_concerns/organization_builder.rb
|
315
316
|
- app/models/panda_pal/organization_concerns/settings_validation.rb
|
316
317
|
- app/models/panda_pal/organization_concerns/task_scheduling.rb
|
318
|
+
- app/models/panda_pal/organization_concerns/tenant_handling.rb
|
317
319
|
- app/models/panda_pal/panda_pal_record.rb
|
318
320
|
- app/models/panda_pal/platform.rb
|
319
321
|
- app/models/panda_pal/platform/canvas.rb
|
@@ -343,21 +345,23 @@ files:
|
|
343
345
|
- lib/panda_pal/helpers/secure_headers.rb
|
344
346
|
- lib/panda_pal/helpers/session_replacement.rb
|
345
347
|
- lib/panda_pal/plugins.rb
|
348
|
+
- lib/panda_pal/spec_helper.rb
|
346
349
|
- lib/panda_pal/version.rb
|
347
350
|
- lib/tasks/panda_pal_tasks.rake
|
348
351
|
- panda_pal.gemspec
|
349
352
|
- spec/controllers/panda_pal/api_call_controller_spec.rb
|
353
|
+
- spec/core/apartment_multidb_spec.rb
|
350
354
|
- spec/dummy/README.rdoc
|
351
355
|
- spec/dummy/Rakefile
|
352
356
|
- spec/dummy/app/assets/javascripts/application.js
|
353
357
|
- spec/dummy/app/assets/stylesheets/application.css
|
358
|
+
- spec/dummy/app/bin/bundle
|
359
|
+
- spec/dummy/app/bin/rails
|
360
|
+
- spec/dummy/app/bin/rake
|
361
|
+
- spec/dummy/app/bin/setup
|
354
362
|
- spec/dummy/app/controllers/application_controller.rb
|
355
363
|
- spec/dummy/app/helpers/application_helper.rb
|
356
364
|
- spec/dummy/app/views/layouts/application.html.erb
|
357
|
-
- spec/dummy/bin/bundle
|
358
|
-
- spec/dummy/bin/rails
|
359
|
-
- spec/dummy/bin/rake
|
360
|
-
- spec/dummy/bin/setup
|
361
365
|
- spec/dummy/config.ru
|
362
366
|
- spec/dummy/config/application.rb
|
363
367
|
- spec/dummy/config/boot.rb
|
@@ -377,6 +381,7 @@ files:
|
|
377
381
|
- spec/dummy/config/routes.rb
|
378
382
|
- spec/dummy/config/secrets.yml
|
379
383
|
- spec/dummy/db/schema.rb
|
384
|
+
- spec/dummy/db/test2_schema.rb
|
380
385
|
- spec/dummy/public/404.html
|
381
386
|
- spec/dummy/public/422.html
|
382
387
|
- spec/dummy/public/500.html
|
@@ -394,7 +399,7 @@ homepage: http://instructure.com
|
|
394
399
|
licenses:
|
395
400
|
- MIT
|
396
401
|
metadata: {}
|
397
|
-
post_install_message:
|
402
|
+
post_install_message:
|
398
403
|
rdoc_options: []
|
399
404
|
require_paths:
|
400
405
|
- lib
|
@@ -409,52 +414,54 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
409
414
|
- !ruby/object:Gem::Version
|
410
415
|
version: '0'
|
411
416
|
requirements: []
|
412
|
-
rubygems_version: 3.
|
413
|
-
signing_key:
|
417
|
+
rubygems_version: 3.5.16
|
418
|
+
signing_key:
|
414
419
|
specification_version: 4
|
415
420
|
summary: LTI mountable engine
|
416
421
|
test_files:
|
417
|
-
- spec/rails_helper.rb
|
418
|
-
- spec/models/panda_pal/api_call_spec.rb
|
419
|
-
- spec/models/panda_pal/organization_spec.rb
|
420
|
-
- spec/models/panda_pal/session_spec.rb
|
421
|
-
- spec/models/panda_pal/organization/settings_validation_spec.rb
|
422
|
-
- spec/models/panda_pal/organization/task_scheduling_spec.rb
|
423
422
|
- spec/controllers/panda_pal/api_call_controller_spec.rb
|
424
|
-
- spec/
|
425
|
-
- spec/dummy/
|
426
|
-
- spec/dummy/public/422.html
|
427
|
-
- spec/dummy/public/favicon.ico
|
428
|
-
- spec/dummy/public/404.html
|
429
|
-
- spec/dummy/public/500.html
|
423
|
+
- spec/core/apartment_multidb_spec.rb
|
424
|
+
- spec/dummy/README.rdoc
|
430
425
|
- spec/dummy/Rakefile
|
431
|
-
- spec/dummy/app/
|
426
|
+
- spec/dummy/app/assets/javascripts/application.js
|
427
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
428
|
+
- spec/dummy/app/bin/bundle
|
429
|
+
- spec/dummy/app/bin/rails
|
430
|
+
- spec/dummy/app/bin/rake
|
431
|
+
- spec/dummy/app/bin/setup
|
432
432
|
- spec/dummy/app/controllers/application_controller.rb
|
433
433
|
- spec/dummy/app/helpers/application_helper.rb
|
434
|
-
- spec/dummy/app/
|
435
|
-
- spec/dummy/app/assets/javascripts/application.js
|
436
|
-
- spec/dummy/config/secrets.yml
|
434
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
437
435
|
- spec/dummy/config/application.rb
|
438
|
-
- spec/dummy/config/initializers/session_store.rb
|
439
|
-
- spec/dummy/config/initializers/wrap_parameters.rb
|
440
|
-
- spec/dummy/config/initializers/inflections.rb
|
441
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
442
|
-
- spec/dummy/config/initializers/mime_types.rb
|
443
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
444
|
-
- spec/dummy/config/initializers/cookies_serializer.rb
|
445
|
-
- spec/dummy/config/environments/development.rb
|
446
|
-
- spec/dummy/config/environments/test.rb
|
447
|
-
- spec/dummy/config/environments/production.rb
|
448
|
-
- spec/dummy/config/database.yml
|
449
436
|
- spec/dummy/config/boot.rb
|
450
|
-
- spec/dummy/config/
|
437
|
+
- spec/dummy/config/database.yml
|
451
438
|
- spec/dummy/config/environment.rb
|
439
|
+
- spec/dummy/config/environments/development.rb
|
440
|
+
- spec/dummy/config/environments/production.rb
|
441
|
+
- spec/dummy/config/environments/test.rb
|
442
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
443
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
444
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
445
|
+
- spec/dummy/config/initializers/inflections.rb
|
446
|
+
- spec/dummy/config/initializers/mime_types.rb
|
447
|
+
- spec/dummy/config/initializers/session_store.rb
|
448
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
452
449
|
- spec/dummy/config/locales/en.yml
|
453
|
-
- spec/dummy/
|
450
|
+
- spec/dummy/config/routes.rb
|
451
|
+
- spec/dummy/config/secrets.yml
|
454
452
|
- spec/dummy/config.ru
|
455
|
-
- spec/dummy/
|
456
|
-
- spec/dummy/
|
457
|
-
- spec/dummy/
|
458
|
-
- spec/dummy/
|
453
|
+
- spec/dummy/db/schema.rb
|
454
|
+
- spec/dummy/db/test2_schema.rb
|
455
|
+
- spec/dummy/public/404.html
|
456
|
+
- spec/dummy/public/422.html
|
457
|
+
- spec/dummy/public/500.html
|
458
|
+
- spec/dummy/public/favicon.ico
|
459
459
|
- spec/factories/panda_pal_organizations.rb
|
460
460
|
- spec/factories/panda_pal_sessions.rb
|
461
|
+
- spec/models/panda_pal/api_call_spec.rb
|
462
|
+
- spec/models/panda_pal/organization/settings_validation_spec.rb
|
463
|
+
- spec/models/panda_pal/organization/task_scheduling_spec.rb
|
464
|
+
- spec/models/panda_pal/organization_spec.rb
|
465
|
+
- spec/models/panda_pal/session_spec.rb
|
466
|
+
- spec/rails_helper.rb
|
467
|
+
- spec/spec_helper.rb
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|