canvas_link_migrator 1.0.13 → 1.0.15

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: 9b5936b2c0b84390589696838b2f7409d71467a11b20f81c63176e8e99a54caa
4
- data.tar.gz: 49c4a0df338db02c8b658c49249f2fb8c3f9a75d60790f6fd72a405242682fca
3
+ metadata.gz: 36b5ebb39673be4a7105bc459809c1faa333899c9d709d665cabd00f4242401d
4
+ data.tar.gz: 6702833e94aa9a7fd3bb3265199c2b7caf269e30fd0c82b5c15028d810d44c14
5
5
  SHA512:
6
- metadata.gz: c3c0f69c22fd75d7f783fa017993c7803f7504aa2e4b353917b33ec730a2cf0577e3f8941b58472a6ab694ab92bd667be12c5d65300119d7febea6cca0b9d45f
7
- data.tar.gz: 3e6158123ea5ad27bd55033865474133d9bdc7e663006c05eb3d8efb76bf7fe49a6041e0b37d19d1d0ca606aba4bbb329caa9cd4b92e13db8b97fc65dace5d24
6
+ metadata.gz: e8a5d21a3c0a74e5805163d724e42c64a0db4a6d2b18f85f637e401f6ca09089aab287e8afb88b22150cd7eadf90e51a1ba3e78d9bb7892968bbf57055554bfe
7
+ data.tar.gz: 1fd447f0548f8c84a2fdea0a6a791679eea31c6f4dede5502d4191dcf96b994d4072b303a6ba713151bc03aaddefe6ad003e556ffd4ce39880f8ce792a216522
@@ -211,7 +211,7 @@ module CanvasLinkMigrator
211
211
  elsif url =~ %r{\$CANVAS_COURSE_REFERENCE\$/modules/items/([^?]*)(\?.*)?}
212
212
  unresolved(:module_item, migration_id: $1, query: $2)
213
213
  elsif url =~ %r{\$CANVAS_COURSE_REFERENCE\$/file_ref/([^/?#]+)(.*)}
214
- in_media_iframe = (attr == "src" && ["iframe", "source"].include?(node.name) && node["data-media-id"])
214
+ in_media_iframe = (attr == "src" && ["iframe", "source"].include?(node.name) && (node["data-media-id"] || node["data-media-type"]))
215
215
  rest = in_media_iframe ? media_params(node["data-media-type"]) : $2
216
216
  unresolved(:file_ref,
217
217
  migration_id: $1,
@@ -226,6 +226,7 @@ module CanvasLinkMigrator
226
226
  end
227
227
  end
228
228
  new_url += new_action.presence || "/preview"
229
+ new_url.chomp!("/")
229
230
  new_url += "?#{qs.join("&")}" if qs.present?
230
231
  end
231
232
  rel_path_parts.shift
@@ -1,3 +1,3 @@
1
1
  module CanvasLinkMigrator
2
- VERSION = "1.0.13"
2
+ VERSION = "1.0.15"
3
3
  end
@@ -32,6 +32,12 @@ describe CanvasLinkMigrator::LinkParser do
32
32
  expect(parsed[:target_blank]).to be true
33
33
  end
34
34
 
35
+ it "checks data-media-type attribute to determine in_media_iframe" do
36
+ doc = Nokogiri::HTML5.fragment("<p><iframe data-media-type=\"video\" src=\"$CANVAS_COURSE_REFERENCE$/file_ref/whatevs\"></iframe></p>")
37
+ parsed = parser.parse_url("$CANVAS_COURSE_REFERENCE$/file_ref/whatevs", doc.at_css('iframe'), "src")
38
+ expect(parsed[:in_media_iframe]).to eq "video"
39
+ end
40
+
35
41
  it "converts inner html of anchor tags when appropriate" do
36
42
  doc = Nokogiri::HTML5.fragment("<a href=\"$WIKI_REFERENCE$/pages/1\">$WIKI_REFERENCE$/pages/1</a>")
37
43
  parser.convert_link(doc.at_css('a'), "href","wiki_page", "migrationid", "")
@@ -57,6 +57,17 @@ describe CanvasLinkMigrator::LinkResolver do
57
57
  expect(link[:new_value]).to eq("/courses/2/files/6?verifier=u6")
58
58
  end
59
59
 
60
+ it "does not leave a trailing slash on the url with a `canvas_` query param" do
61
+ link = {
62
+ link_type: :file,
63
+ migration_id: "F",
64
+ rel_path: "subfolder/with a space/test.png?canvas_=1&amp;amp;canvas_qs_wrap=1" }
65
+
66
+ resolver.resolve_link!(link)
67
+
68
+ expect(link[:new_value]).to eq("/courses/2/files/6?verifier=u6&wrap=1")
69
+ end
70
+
60
71
  it "converts attachment urls" do
61
72
  link = { link_type: :object, type: "attachments", migration_id: "E", query: "?foo=bar" }
62
73
  resolver.resolve_link!(link)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canvas_link_migrator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mysti Lilla
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2024-07-24 00:00:00.000000000 Z
14
+ date: 2024-10-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport