coalescing_panda 5.2.2 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ff79a0045d9ce6d7bc441835775dc872f1257c3a9e958ce9760b7cc45166bf9
4
- data.tar.gz: 2069483ad4e45877780af43c0b2210db63bca59fd7060912528d8131fd13de7f
3
+ metadata.gz: e7878b0105e3d3ef6115420ad4fa3c2131677bf1ad567255105d5bf441da48f6
4
+ data.tar.gz: '0965adc240c9d7a787c279308ea9b52d8397ac92cef557cbb9941f5016bae29e'
5
5
  SHA512:
6
- metadata.gz: b092c17ec0fce72c4f64e602b9a58cf28793174b9a37d7e1386b6c6d77626ea99e8fa92e5d4af0b0cd9a7a816ff21f0e270765b466a598992e481e1731314dc5
7
- data.tar.gz: 34a4160773bc6c60a7ae6cbe860ecbc5e5a16ee693b84a539baadb5dcd4097406a838a3c4625bb90447558200456c21accf1a6bf401b8a25dc15d62fef22fd54
6
+ metadata.gz: f6c496be1722e5de4afa2f423cf2d4c8e1a94e781a3f0b3b0dac918f5f28ea9c0a69ca1962b14c49fe33034513f30a80cd07e6b282a7b61c2175559f77d7367a
7
+ data.tar.gz: ddc3b0768499c4c0b1ac33ba9f173cff4444bb30c3253bec37a2f85e530121fab0e28ab4fb56baa66f70078750a96eff15cb6b2968fe9246f0f9a2f03e057c7b
@@ -1,8 +1,8 @@
1
1
  module CoalescingPanda
2
2
  class Assignment < ActiveRecord::Base
3
3
  belongs_to :course, foreign_key: :coalescing_panda_course_id, class_name: 'CoalescingPanda::Course'
4
- belongs_to :assignment_group, foreign_key: :coalescing_panda_assignment_group_id, class_name: 'CoalescingPanda::AssignmentGroup'
5
- belongs_to :group_category, foreign_key: :coalescing_panda_group_category_id, class_name: 'CoalescingPanda::GroupCategory'
4
+ belongs_to :assignment_group, foreign_key: :coalescing_panda_assignment_group_id, class_name: 'CoalescingPanda::AssignmentGroup', optional: true
5
+ belongs_to :group_category, foreign_key: :coalescing_panda_group_category_id, class_name: 'CoalescingPanda::GroupCategory', optional: true
6
6
  has_many :submissions, foreign_key: :coalescing_panda_assignment_id, class_name: 'CoalescingPanda::Submission', dependent: :destroy
7
7
 
8
8
  delegate :account, to: :course
@@ -20,7 +20,7 @@ class CoalescingPanda::Workers::AccountMiner
20
20
  else
21
21
  batch = account.canvas_batches.create(context: account, status: "Queued")
22
22
  end
23
- batch.update_attributes(options: options)
23
+ batch.update(options: options)
24
24
  batch
25
25
  end
26
26
 
@@ -35,18 +35,18 @@ class CoalescingPanda::Workers::AccountMiner
35
35
  end
36
36
 
37
37
  begin
38
- batch.update_attributes(status: "Started", percent_complete: 0)
38
+ batch.update(status: "Started", percent_complete: 0)
39
39
  index = 1
40
40
  SUPPORTED_MODELS.each do |model_key|
41
41
  next unless options.include?(model_key)
42
42
  process_api_data(model_key.to_sym)
43
43
  percent_complete = (index/(options.count.nonzero? || 1).to_f * 100).round(1)
44
- batch.update_attributes(percent_complete: percent_complete)
44
+ batch.update(percent_complete: percent_complete)
45
45
  index += 1
46
46
  end
47
- batch.update_attributes(status: "Completed", percent_complete: 100)
47
+ batch.update(status: "Completed", percent_complete: 100)
48
48
  rescue => e
49
- batch.update_attributes(status: "Error", message: e.message)
49
+ batch.update(status: "Error", message: e.message)
50
50
  end
51
51
  end
52
52
  handle_asynchronously :start
@@ -55,7 +55,7 @@ class CoalescingPanda::Workers::AccountMiner
55
55
  return true unless account.settings[:canvas_download_interval].present?
56
56
  return true unless last_completed_batch = account.canvas_batches.where(context: account, status: 'Completed').order('updated_at ASC').first
57
57
  should_download = last_completed_batch.updated_at < Time.zone.now - account.settings[:canvas_download_interval].minutes
58
- batch.update_attributes(status: 'Canceled') unless should_download
58
+ batch.update(status: 'Canceled') unless should_download
59
59
  should_download
60
60
  end
61
61
 
@@ -26,7 +26,7 @@ class CoalescingPanda::Workers::CourseMiner
26
26
  else
27
27
  batch = account.canvas_batches.create(context: course, status: "Queued")
28
28
  end
29
- batch.update_attributes(options: options)
29
+ batch.update(options: options)
30
30
  batch
31
31
  end
32
32
 
@@ -41,18 +41,18 @@ class CoalescingPanda::Workers::CourseMiner
41
41
  end
42
42
 
43
43
  begin
44
- batch.update_attributes(status: "Started", percent_complete: 0)
44
+ batch.update(status: "Started", percent_complete: 0)
45
45
  index = 1
46
46
  SUPPORTED_MODELS.each do |model_key|
47
47
  next unless options.include?(model_key)
48
48
  process_api_data(model_key.to_sym)
49
49
  percent_complete = (index/(options.count.nonzero? || 1).to_f * 100).round(1)
50
- batch.update_attributes(percent_complete: percent_complete)
50
+ batch.update(percent_complete: percent_complete)
51
51
  index += 1
52
52
  end
53
- batch.update_attributes(status: "Completed", percent_complete: 100)
53
+ batch.update(status: "Completed", percent_complete: 100)
54
54
  rescue => e
55
- batch.update_attributes(status: "Error", message: e.message)
55
+ batch.update(status: "Error", message: e.message)
56
56
  end
57
57
  end
58
58
  handle_asynchronously :start
@@ -61,7 +61,7 @@ class CoalescingPanda::Workers::CourseMiner
61
61
  return true unless account.settings[:canvas_download_interval].present?
62
62
  return true unless last_completed_batch = account.canvas_batches.where(context: course, status: 'Completed').order('updated_at ASC').first
63
63
  should_download = last_completed_batch.updated_at < Time.zone.now - account.settings[:canvas_download_interval].minutes
64
- batch.update_attributes(status: 'Canceled') unless should_download
64
+ batch.update(status: 'Canceled') unless should_download
65
65
  should_download
66
66
  end
67
67
 
@@ -285,7 +285,7 @@ class CoalescingPanda::Workers::CourseMiner
285
285
  def delete_object(object, hard_delete = false, field = 'workflow_state')
286
286
  if @options.include?(:soft_delete) && !hard_delete
287
287
  begin
288
- object.update_attributes(field.to_sym => 'deleted')
288
+ object.update(field.to_sym => 'deleted')
289
289
  rescue => e
290
290
  Rails.logger.error("Error deleting with soft delete, attempting hard")
291
291
  delete_object(object, true)
@@ -1,4 +1,4 @@
1
1
  - if current_batch.present?
2
- - path = CoalescingPanda::Engine.routes.url_helpers.canvas_batch_path(current_batch) + "?encrypted_session_key=#{encrypted_session_key}"
3
- - clear_path = CoalescingPanda::Engine.routes.url_helpers.clear_batch_session_path + "?encrypted_session_key=#{encrypted_session_key}"
2
+ - path = CoalescingPanda::Engine.routes.url_helpers.canvas_batch_path(current_batch)
3
+ - clear_path = CoalescingPanda::Engine.routes.url_helpers.clear_batch_session_path
4
4
  #batch-progress{data: {batch: current_batch.try(:to_json), url: path, clear_path: clear_path} }
@@ -208,7 +208,7 @@ module CoalescingPanda
208
208
  # when using coalescing_panda.xyz_url (The Engine Prefix is not included)
209
209
  # I believe https://github.com/rails/rails/issues/34452 is the same issue
210
210
  def resolve_coalescing_panda_url(key)
211
- key = key.to_s[0...-4] if key.to_s.ends_with?('_url')
211
+ key = key.to_s[0...-4] if key.to_s.end_with?('_url')
212
212
  resolved_path = coalescing_panda.send(:"#{key}_path")
213
213
  cpurl = coalescing_panda_url
214
214
  cppath = URI.parse(cpurl).path
@@ -3,7 +3,6 @@ require_relative './secure_headers'
3
3
 
4
4
  module CoalescingPanda
5
5
  class Engine < ::Rails::Engine
6
- config.autoload_once_paths += Dir["#{config.root}/lib/**/"]
7
6
  isolate_namespace CoalescingPanda
8
7
 
9
8
  config.generators do |g|
@@ -19,6 +18,14 @@ module CoalescingPanda
19
18
  end
20
19
  end
21
20
 
21
+ initializer 'coalescing_panda.zeitwerk' do |app|
22
+ Rails.autoloaders.each do |autoloader|
23
+ autoloader.inflector.inflect(
24
+ 'json_with_indifferent_access' => 'JSONWithIndifferentAccess'
25
+ )
26
+ end
27
+ end
28
+
22
29
  initializer 'coalescing_panda.app_controller' do |app|
23
30
  OAUTH_10_SUPPORT = true
24
31
  ActiveSupport.on_load(:action_controller) do
@@ -1,3 +1,3 @@
1
1
  module CoalescingPanda
2
- VERSION = '5.2.2'
2
+ VERSION = '5.3.0'
3
3
  end
@@ -9,6 +9,10 @@ require 'sass-rails'
9
9
  require 'coffee-rails'
10
10
  require 'p3p'
11
11
  require 'delayed_job_active_record'
12
+ require "zeitwerk"
13
+
14
+ loader = Zeitwerk::Loader.for_gem
15
+ loader.setup
12
16
 
13
17
  module CoalescingPanda
14
18
  class LtiNavigationInUse < StandardError;end
@@ -63,3 +67,5 @@ module CoalescingPanda
63
67
  end
64
68
 
65
69
  end
70
+
71
+ loader.eager_load
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
@@ -73,7 +73,7 @@ RSpec.describe CoalescingPanda::Workers::CourseMiner, :type => :model do
73
73
 
74
74
  it 'should return a started batch if one exists' do
75
75
  batch = worker.setup_batch
76
- batch.update_attributes(status: 'Started')
76
+ batch.update(status: 'Started')
77
77
  batch = worker.setup_batch
78
78
  expect(batch.status).to eq 'Started'
79
79
  end
@@ -273,7 +273,7 @@ RSpec.describe CoalescingPanda::Workers::CourseMiner, :type => :model do
273
273
 
274
274
  it 'should return a started batch if one exists' do
275
275
  batch = worker.setup_batch
276
- batch.update_attributes(status: 'Started')
276
+ batch.update(status: 'Started')
277
277
  batch = worker.setup_batch
278
278
  expect(batch.status).to eq 'Started'
279
279
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coalescing_panda
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.2
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Mills
8
8
  - Cody Tanner
9
9
  - Jake Sorce
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-09-21 00:00:00.000000000 Z
13
+ date: 2024-07-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -18,42 +18,42 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 4.2.11
21
+ version: 6.1.7
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 4.2.11
28
+ version: 6.1.7
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: actionview
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: 4.2.11.1
35
+ version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 4.2.11.1
42
+ version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: bearcat
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '1.3'
49
+ version: '1.4'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - "~>"
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: '1.3'
56
+ version: '1.4'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: browser
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -242,6 +242,20 @@ dependencies:
242
242
  - - "~>"
243
243
  - !ruby/object:Gem::Version
244
244
  version: '6.3'
245
+ - !ruby/object:Gem::Dependency
246
+ name: zeitwerk
247
+ requirement: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: 2.6.15
252
+ type: :runtime
253
+ prerelease: false
254
+ version_requirements: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: 2.6.15
245
259
  - !ruby/object:Gem::Dependency
246
260
  name: zip-zip
247
261
  requirement: !ruby/object:Gem::Requirement
@@ -410,7 +424,35 @@ dependencies:
410
424
  - - ">="
411
425
  - !ruby/object:Gem::Version
412
426
  version: '0'
413
- description:
427
+ - !ruby/object:Gem::Dependency
428
+ name: loofah
429
+ requirement: !ruby/object:Gem::Requirement
430
+ requirements:
431
+ - - "~>"
432
+ - !ruby/object:Gem::Version
433
+ version: 2.19.1
434
+ type: :development
435
+ prerelease: false
436
+ version_requirements: !ruby/object:Gem::Requirement
437
+ requirements:
438
+ - - "~>"
439
+ - !ruby/object:Gem::Version
440
+ version: 2.19.1
441
+ - !ruby/object:Gem::Dependency
442
+ name: redis
443
+ requirement: !ruby/object:Gem::Requirement
444
+ requirements:
445
+ - - ">="
446
+ - !ruby/object:Gem::Version
447
+ version: 4.0.1
448
+ type: :development
449
+ prerelease: false
450
+ version_requirements: !ruby/object:Gem::Requirement
451
+ requirements:
452
+ - - ">="
453
+ - !ruby/object:Gem::Version
454
+ version: 4.0.1
455
+ description:
414
456
  email:
415
457
  - nathanm@instructure.com
416
458
  - ctanner@instructure.com
@@ -512,6 +554,7 @@ files:
512
554
  - spec/controllers/coalescing_panda/oauth2_controller_spec.rb
513
555
  - spec/dummy/README.rdoc
514
556
  - spec/dummy/Rakefile
557
+ - spec/dummy/app/assets/config/manifest.js
515
558
  - spec/dummy/app/assets/javascripts/application.js
516
559
  - spec/dummy/app/assets/stylesheets/application.css
517
560
  - spec/dummy/app/controllers/application_controller.rb
@@ -579,7 +622,7 @@ files:
579
622
  homepage: http://www.instructure.com
580
623
  licenses: []
581
624
  metadata: {}
582
- post_install_message:
625
+ post_install_message:
583
626
  rdoc_options: []
584
627
  require_paths:
585
628
  - lib
@@ -595,7 +638,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
595
638
  version: '0'
596
639
  requirements: []
597
640
  rubygems_version: 3.1.6
598
- signing_key:
641
+ signing_key:
599
642
  specification_version: 4
600
643
  summary: Canvas LTI and OAUTH2 mountable engine
601
644
  test_files:
@@ -634,6 +677,7 @@ test_files:
634
677
  - spec/dummy/app/controllers/application_controller.rb
635
678
  - spec/dummy/app/helpers/application_helper.rb
636
679
  - spec/dummy/app/assets/stylesheets/application.css
680
+ - spec/dummy/app/assets/config/manifest.js
637
681
  - spec/dummy/app/assets/javascripts/application.js
638
682
  - spec/dummy/config/application.rb
639
683
  - spec/dummy/config/initializers/lti_initializer.rb