canvas_link_migrator 1.0.4 → 1.0.5
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 +4 -4
- data/lib/canvas_link_migrator/link_parser.rb +3 -1
- data/lib/canvas_link_migrator/link_resolver.rb +3 -2
- 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 +6 -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: 69ea954296733466368b26038c4408f864cb840c758591a3129a5cb0c2970a96
|
4
|
+
data.tar.gz: 4bb90f2745274adfe514bd22ff321a2ec62dafd379b6ad3cb90aff739c2a8fee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26f74e87e3e4a5240d7e0de8782d429d0e194ac311d9453ae636b7cbe114bfdb5fda2948b3c6fd135f462cd5a59369406e3eb908e595b4ab0a1669eb45f536e0
|
7
|
+
data.tar.gz: 31a6317ec5d8fdd8ba524713a5f71ad948740ce6ae27e5f35b3691a78222efeb04a25cf8c127b4c76791e01588831e9df96dc3deea60a2485d31b4d342d7aed8
|
@@ -210,7 +210,9 @@ module CanvasLinkMigrator
|
|
210
210
|
migration_id: $1,
|
211
211
|
rest: $2,
|
212
212
|
in_media_iframe: attr == "src" && ["iframe", "source"].include?(node.name) && node["data-media-id"],
|
213
|
-
media_attachment: media_attachment
|
213
|
+
media_attachment: media_attachment,
|
214
|
+
target_blank: node['target'] == "_blank" && node.name == "a" && attr == "href"
|
215
|
+
)
|
214
216
|
elsif url =~ %r{(?:\$CANVAS_OBJECT_REFERENCE\$|\$WIKI_REFERENCE\$)/([^/]*)/([^?]*)(\?.*)?}
|
215
217
|
if KNOWN_REFERENCE_TYPES.include?($1)
|
216
218
|
unresolved(:object, type: $1, migration_id: $2, query: $3)
|
@@ -116,13 +116,14 @@ module CanvasLinkMigrator
|
|
116
116
|
when :file_ref
|
117
117
|
file_id = @migration_id_converter.convert_attachment_migration_id(link[:migration_id])
|
118
118
|
if file_id
|
119
|
-
rest = link[:rest].presence
|
119
|
+
rest = link[:rest].presence
|
120
|
+
rest ||= "/preview" unless link[:target_blank]
|
120
121
|
|
121
122
|
# Icon Maker files should not have the course
|
122
123
|
# context prepended to the URL. This prevents
|
123
124
|
# redirects to non cross-origin friendly urls
|
124
125
|
# during a file fetch
|
125
|
-
if rest
|
126
|
+
if rest&.include?("icon_maker_icon=1")
|
126
127
|
link[:new_value] = "/files/#{file_id}#{rest}"
|
127
128
|
elsif link[:in_media_iframe] && link[:media_attachment]
|
128
129
|
link[:new_value] = "/media_attachments_iframe/#{file_id}#{rest}"
|
@@ -29,6 +29,12 @@ describe CanvasLinkMigrator::LinkParser do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
describe "convert_link" do
|
32
|
+
it "marks target=_blank anchor tags" do
|
33
|
+
doc = Nokogiri::HTML5.fragment("<a target=\"_blank\"></a>")
|
34
|
+
parsed = parser.parse_url("$CANVAS_COURSE_REFERENCE$/file_ref/whatevs", doc.at_css('a'), "href")
|
35
|
+
expect(parsed[:target_blank]).to be true
|
36
|
+
end
|
37
|
+
|
32
38
|
it "converts inner html of anchor tags when appropriate" do
|
33
39
|
doc = Nokogiri::HTML5.fragment("<a href=\"$WIKI_REFERENCE$/pages/1\">$WIKI_REFERENCE$/pages/1</a>")
|
34
40
|
parser.convert_link(doc.at_css('a'), "href","wiki_page", "migrationid", "")
|
@@ -51,6 +51,12 @@ describe CanvasLinkMigrator::LinkResolver do
|
|
51
51
|
expect(link[:new_value]).to eq("/courses/2/files/6/preview")
|
52
52
|
end
|
53
53
|
|
54
|
+
it "does not suffix /preview to target blank links" do
|
55
|
+
link = { link_type: :file_ref, target_blank: true, migration_id: "F" }
|
56
|
+
resolver.resolve_link!(link)
|
57
|
+
expect(link[:new_value]).to eq("/courses/2/files/6")
|
58
|
+
end
|
59
|
+
|
54
60
|
it "converts attachment urls" do
|
55
61
|
link = { link_type: :object, type: "attachments", migration_id: "E", query: "?foo=bar" }
|
56
62
|
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.5
|
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-02-
|
14
|
+
date: 2024-02-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|