panda_pal 5.4.0 → 5.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52f9acd1140343a82865441f59754c28df08780876b234cad3f7cbfdaa8a1261
4
- data.tar.gz: 33c8718d1171d76b38ba8e77793de352bacc03f1f7c6fa2da31e2f69b412e609
3
+ metadata.gz: 3ec5567515a06e761a0cb06597380d4a10a9454f58f903466f5871757323dc7c
4
+ data.tar.gz: 418a9fe6dc99d53b6775b65c425db8c8c02aadf0adb2d92673934094bc26f3d7
5
5
  SHA512:
6
- metadata.gz: c68e57f0abcd6e2f46a22f15757294c0b9002039a61e7e66cda233edcf2cf0a26eda9247520f163b37ce3b9c56f1be2b09705fe59fa031c2be70d0065db60e49
7
- data.tar.gz: 87c0bb93619507cd6e90c7b3dd1726a5522e6ceb0eaa7ee898c836953080c7ec941e7ddda489e6482d55388c582a61915018730dba7c4f845bf73b2a572c135d
6
+ metadata.gz: 067dbe50e329437ada560115134fe992b3522e4bf971e73c9a22a375dd3803e5aa4897b1cf4af66fc1e31d8f905233d601a910cadaca740cd0a21a8c5d495831
7
+ data.tar.gz: 1d5ffae5cd2f7a884799a23ae73e5d3935d2f64ff1397dc506a364c34de916e317f1098de64549f5e1c15fd033090a31646f171e3b779dcb45006a7251741460
@@ -49,6 +49,10 @@ module PandaPal
49
49
  end
50
50
  end
51
51
 
52
+ def self.current
53
+ find_by_name(Apartment::Tenant.current)
54
+ end
55
+
52
56
  PandaPal.resolved_extensions_for(self).each do |ext|
53
57
  include ext
54
58
  end
@@ -160,7 +160,7 @@ module PandaPal
160
160
  private
161
161
 
162
162
  def unschedule_tasks(new_task_keys = nil)
163
- current_schedules = Sidekiq.get_schedule.select { |k,v| k.starts_with?("org:#{name}-") }
163
+ current_schedules = Sidekiq.get_schedule.select { |k,v| k.start_with?("org:#{name}-") }
164
164
  del_tasks = current_schedules.keys
165
165
  del_tasks -= new_task_keys if new_task_keys
166
166
  del_tasks.each do |k|
@@ -198,13 +198,19 @@ module PandaPal
198
198
 
199
199
  Apartment::Tenant.switch(org.name) do
200
200
  if worker.is_a?(Proc)
201
- org.instance_exec(&worker)
201
+ return org.instance_exec(&worker)
202
202
  elsif worker.is_a?(Symbol)
203
- org.send(worker)
203
+ return org.send(worker)
204
204
  elsif worker.is_a?(String)
205
- worker.constantize.perform_async
206
- elsif worker.is_a?(Class)
207
- worker.perform_async
205
+ worker = worker.constantize
206
+ end
207
+
208
+ if worker.is_a?(Class)
209
+ if worker.respond_to?(:perform_async)
210
+ worker.perform_async
211
+ else
212
+ worker.perform_later
213
+ end
208
214
  end
209
215
  end
210
216
  end
@@ -12,7 +12,7 @@ end
12
12
  Rails.application.config.middleware.use Apartment::Elevators::Generic, lambda { |request|
13
13
  if match = request.path.match(/\/(?:orgs?|organizations?)\/(\d+)/)
14
14
  PandaPal::Organization.find_by(id: match[1]).try(:name)
15
- elsif request.path.starts_with?('/rails/active_storage/blobs/')
15
+ elsif request.path.start_with?('/rails/active_storage/blobs/')
16
16
  PandaPal::Organization.find_by(id: request.params['organization_id']).try(:name)
17
17
  end
18
18
  }
@@ -5,8 +5,11 @@ module PandaPal::Helpers
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- helper_method :link_nonce, :current_session, :current_session_data
9
- helper_method :link_with_session_to, :url_with_session, :session_url_for
8
+ # ActionController::API does not use views, so helper_method would not be defined
9
+ unless name == "ActionController::API"
10
+ helper_method :link_nonce, :current_session, :current_session_data
11
+ helper_method :link_with_session_to, :url_with_session, :session_url_for
12
+ end
10
13
 
11
14
  prepend_around_action :monkeypatch_flash
12
15
  prepend_around_action :auto_save_session
@@ -1,3 +1,3 @@
1
1
  module PandaPal
2
- VERSION = "5.4.0"
2
+ VERSION = "5.4.4"
3
3
  end
data/lib/panda_pal.rb CHANGED
@@ -91,7 +91,7 @@ module PandaPal
91
91
 
92
92
  def self.normalize_ext_type(type)
93
93
  type = type.to_s
94
- type = "#{self.to_s}::#{type}" unless type.starts_with?('::') || type.starts_with?(self.to_s)
94
+ type = "#{self.to_s}::#{type}" unless type.start_with?('::') || type.start_with?(self.to_s)
95
95
  type
96
96
  end
97
97
 
data/panda_pal.gemspec CHANGED
@@ -17,7 +17,6 @@ Gem::Specification.new do |s|
17
17
 
18
18
  s.add_dependency "rails", ">= 4.2"
19
19
  s.add_dependency 'ros-apartment', '~> 2.2'
20
- s.add_dependency 'pg', '>= 0.20', '< 1.0.0'
21
20
  s.add_dependency 'ims-lti', '~> 1.2.4'
22
21
  s.add_dependency 'browser', '2.5.0'
23
22
  s.add_dependency 'attr_encrypted', '~> 3.0.0'
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.0
4
+ version: 5.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure ProServe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-03 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -38,26 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.2'
41
- - !ruby/object:Gem::Dependency
42
- name: pg
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0.20'
48
- - - "<"
49
- - !ruby/object:Gem::Version
50
- version: 1.0.0
51
- type: :runtime
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: '0.20'
58
- - - "<"
59
- - !ruby/object:Gem::Version
60
- version: 1.0.0
61
41
  - !ruby/object:Gem::Dependency
62
42
  name: ims-lti
63
43
  requirement: !ruby/object:Gem::Requirement
@@ -222,7 +202,6 @@ files:
222
202
  - app/lib/lti_xml/base_platform.rb
223
203
  - app/lib/lti_xml/bridge_platform.rb
224
204
  - app/lib/lti_xml/canvas_platform.rb
225
- - app/lib/panda_pal/batch_processor.rb
226
205
  - app/lib/panda_pal/launch_url_helpers.rb
227
206
  - app/lib/panda_pal/lti_jwt_validator.rb
228
207
  - app/lib/panda_pal/misc_helper.rb
@@ -286,8 +265,6 @@ files:
286
265
  - spec/dummy/config/routes.rb
287
266
  - spec/dummy/config/secrets.yml
288
267
  - spec/dummy/db/schema.rb
289
- - spec/dummy/log/development.log
290
- - spec/dummy/log/test.log
291
268
  - spec/dummy/public/404.html
292
269
  - spec/dummy/public/422.html
293
270
  - spec/dummy/public/500.html
@@ -324,47 +301,45 @@ signing_key:
324
301
  specification_version: 4
325
302
  summary: LTI mountable engine
326
303
  test_files:
304
+ - spec/rails_helper.rb
305
+ - spec/models/panda_pal/organization_spec.rb
306
+ - spec/models/panda_pal/session_spec.rb
307
+ - spec/models/panda_pal/organization/settings_validation_spec.rb
308
+ - spec/models/panda_pal/organization/task_scheduling_spec.rb
327
309
  - spec/spec_helper.rb
328
- - spec/dummy/app/controllers/application_controller.rb
310
+ - spec/dummy/db/schema.rb
311
+ - spec/dummy/public/422.html
312
+ - spec/dummy/public/favicon.ico
313
+ - spec/dummy/public/404.html
314
+ - spec/dummy/public/500.html
315
+ - spec/dummy/Rakefile
329
316
  - spec/dummy/app/views/layouts/application.html.erb
330
- - spec/dummy/app/assets/javascripts/application.js
331
- - spec/dummy/app/assets/stylesheets/application.css
317
+ - spec/dummy/app/controllers/application_controller.rb
332
318
  - spec/dummy/app/helpers/application_helper.rb
333
- - spec/dummy/bin/rake
334
- - spec/dummy/bin/setup
335
- - spec/dummy/bin/bundle
336
- - spec/dummy/bin/rails
319
+ - spec/dummy/app/assets/stylesheets/application.css
320
+ - spec/dummy/app/assets/javascripts/application.js
337
321
  - spec/dummy/config/secrets.yml
338
- - spec/dummy/config/routes.rb
339
- - spec/dummy/config/locales/en.yml
340
- - spec/dummy/config/environments/production.rb
341
- - spec/dummy/config/environments/development.rb
342
- - spec/dummy/config/environments/test.rb
343
- - spec/dummy/config/environment.rb
344
322
  - spec/dummy/config/application.rb
345
- - spec/dummy/config/database.yml
346
- - spec/dummy/config/boot.rb
347
- - spec/dummy/config/initializers/backtrace_silencers.rb
348
- - spec/dummy/config/initializers/mime_types.rb
349
- - spec/dummy/config/initializers/filter_parameter_logging.rb
350
323
  - spec/dummy/config/initializers/session_store.rb
351
324
  - spec/dummy/config/initializers/wrap_parameters.rb
352
- - spec/dummy/config/initializers/cookies_serializer.rb
353
325
  - spec/dummy/config/initializers/inflections.rb
354
- - spec/dummy/config.ru
355
- - spec/dummy/Rakefile
356
- - spec/dummy/public/favicon.ico
357
- - spec/dummy/public/422.html
358
- - spec/dummy/public/500.html
359
- - spec/dummy/public/404.html
360
- - spec/dummy/db/schema.rb
361
- - spec/dummy/log/test.log
362
- - spec/dummy/log/development.log
326
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
327
+ - spec/dummy/config/initializers/mime_types.rb
328
+ - spec/dummy/config/initializers/backtrace_silencers.rb
329
+ - spec/dummy/config/initializers/cookies_serializer.rb
330
+ - spec/dummy/config/environments/development.rb
331
+ - spec/dummy/config/environments/test.rb
332
+ - spec/dummy/config/environments/production.rb
333
+ - spec/dummy/config/database.yml
334
+ - spec/dummy/config/boot.rb
335
+ - spec/dummy/config/routes.rb
336
+ - spec/dummy/config/environment.rb
337
+ - spec/dummy/config/locales/en.yml
363
338
  - spec/dummy/README.rdoc
364
- - spec/models/panda_pal/organization/settings_validation_spec.rb
365
- - spec/models/panda_pal/organization/task_scheduling_spec.rb
366
- - spec/models/panda_pal/session_spec.rb
367
- - spec/models/panda_pal/organization_spec.rb
368
- - spec/factories/panda_pal_sessions.rb
339
+ - spec/dummy/config.ru
340
+ - spec/dummy/bin/bundle
341
+ - spec/dummy/bin/rake
342
+ - spec/dummy/bin/setup
343
+ - spec/dummy/bin/rails
369
344
  - spec/factories/panda_pal_organizations.rb
370
- - spec/rails_helper.rb
345
+ - spec/factories/panda_pal_sessions.rb
@@ -1,41 +0,0 @@
1
- module PandaPal
2
- # An array that "processes" after so many items are added.
3
- #
4
- # Example Usage:
5
- # batches = BatchProcessor.new(of: 1000) do |batch|
6
- # # Process the batch somehow
7
- # end
8
- # enumerator_of_some_kind.each { |item| batches << item }
9
- # batches.flush
10
- class BatchProcessor
11
- attr_reader :batch_size
12
-
13
- def initialize(of: 1000, &blk)
14
- @batch_size = of
15
- @block = blk
16
- @current_batch = []
17
- end
18
-
19
- def <<(item)
20
- @current_batch << item
21
- process_batch if @current_batch.count >= batch_size
22
- end
23
-
24
- def add_all(items)
25
- items.each do |i|
26
- self << i
27
- end
28
- end
29
-
30
- def flush
31
- process_batch if @current_batch.present?
32
- end
33
-
34
- protected
35
-
36
- def process_batch
37
- @block.call(@current_batch)
38
- @current_batch = []
39
- end
40
- end
41
- end
@@ -1,56 +0,0 @@
1
-  (1.2ms) DROP DATABASE IF EXISTS "panda_pal_development"
2
-  (0.2ms) DROP DATABASE IF EXISTS "panda_pal_test"
3
-  (82.9ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
4
-  (11.8ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
5
-  (0.3ms) SELECT pg_try_advisory_lock(7878782013693407355);
6
-  (2.8ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
7
- ActiveRecord::InternalMetadata Load (2.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
8
-  (0.2ms) BEGIN
9
- SQL (3.2ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", "2020-04-30 16:44:35.134620"], ["updated_at", "2020-04-30 16:44:35.134620"]]
10
-  (0.6ms) COMMIT
11
-  (0.3ms) SELECT pg_advisory_unlock(7878782013693407355)
12
-  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
13
-  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
14
-  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
15
-  (211.6ms) DROP DATABASE IF EXISTS "panda_pal_development"
16
-  (247.6ms) DROP DATABASE IF EXISTS "panda_pal_test"
17
- SQL (0.4ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
18
-  (8.5ms) DROP TABLE IF EXISTS "panda_pal_organizations" CASCADE
19
-  (14.4ms) CREATE TABLE "panda_pal_organizations" ("id" bigserial primary key, "name" character varying, "key" character varying, "secret" character varying, "canvas_account_id" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "salesforce_id" character varying, "encrypted_settings" text, "encrypted_settings_iv" character varying)
20
-  (2.5ms) CREATE UNIQUE INDEX "index_panda_pal_organizations_on_key" ON "panda_pal_organizations" ("key")
21
-  (2.6ms) CREATE UNIQUE INDEX "index_panda_pal_organizations_on_name" ON "panda_pal_organizations" ("name")
22
-  (0.2ms) DROP TABLE IF EXISTS "panda_pal_sessions" CASCADE
23
-  (6.5ms) CREATE TABLE "panda_pal_sessions" ("id" bigserial primary key, "session_key" character varying, "data" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "panda_pal_organization_id" integer)
24
-  (1.9ms) CREATE INDEX "index_panda_pal_sessions_on_panda_pal_organization_id" ON "panda_pal_sessions" ("panda_pal_organization_id")
25
-  (2.5ms) CREATE UNIQUE INDEX "index_panda_pal_sessions_on_session_key" ON "panda_pal_sessions" ("session_key")
26
-  (3.5ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
27
-  (1.4ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
28
-  (0.6ms) INSERT INTO "schema_migrations" (version) VALUES (20171205194657)
29
-  (47.2ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
30
- ActiveRecord::InternalMetadata Load (1.0ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
31
-  (0.4ms) BEGIN
32
- SQL (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", "2020-04-30 17:00:14.956327"], ["updated_at", "2020-04-30 17:00:14.956327"]]
33
-  (0.5ms) COMMIT
34
- ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
35
-  (0.1ms) BEGIN
36
-  (0.2ms) COMMIT
37
- SQL (0.4ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
38
-  (0.3ms) DROP TABLE IF EXISTS "panda_pal_organizations" CASCADE
39
-  (52.5ms) CREATE TABLE "panda_pal_organizations" ("id" bigserial primary key, "name" character varying, "key" character varying, "secret" character varying, "canvas_account_id" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "salesforce_id" character varying, "encrypted_settings" text, "encrypted_settings_iv" character varying)
40
-  (2.4ms) CREATE UNIQUE INDEX "index_panda_pal_organizations_on_key" ON "panda_pal_organizations" ("key")
41
-  (1.9ms) CREATE UNIQUE INDEX "index_panda_pal_organizations_on_name" ON "panda_pal_organizations" ("name")
42
-  (0.2ms) DROP TABLE IF EXISTS "panda_pal_sessions" CASCADE
43
-  (6.0ms) CREATE TABLE "panda_pal_sessions" ("id" bigserial primary key, "session_key" character varying, "data" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "panda_pal_organization_id" integer)
44
-  (1.8ms) CREATE INDEX "index_panda_pal_sessions_on_panda_pal_organization_id" ON "panda_pal_sessions" ("panda_pal_organization_id")
45
-  (1.8ms) CREATE UNIQUE INDEX "index_panda_pal_sessions_on_session_key" ON "panda_pal_sessions" ("session_key")
46
-  (4.8ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
47
-  (0.9ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
48
-  (4.0ms) INSERT INTO "schema_migrations" (version) VALUES (20171205194657)
49
-  (6.5ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
50
- ActiveRecord::InternalMetadata Load (2.5ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
51
-  (0.1ms) BEGIN
52
- SQL (5.0ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", "2020-04-30 17:00:15.126316"], ["updated_at", "2020-04-30 17:00:15.126316"]]
53
-  (0.4ms) COMMIT
54
- ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
55
-  (0.2ms) BEGIN
56
-  (0.1ms) COMMIT