canvas_link_migrator 1.0.13 → 1.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/canvas_link_migrator/link_parser.rb +1 -1
- data/lib/canvas_link_migrator/link_resolver.rb +1 -0
- data/lib/canvas_link_migrator/version.rb +1 -1
- data/spec/canvas_link_migrator/link_parser_spec.rb +6 -0
- data/spec/canvas_link_migrator/link_resolver_spec.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36b5ebb39673be4a7105bc459809c1faa333899c9d709d665cabd00f4242401d
|
4
|
+
data.tar.gz: 6702833e94aa9a7fd3bb3265199c2b7caf269e30fd0c82b5c15028d810d44c14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
@@ -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;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.
|
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-
|
14
|
+
date: 2024-10-24 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|