github-to-canvas 0.1.16 → 0.1.17
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/Gemfile +4 -4
- data/README.md +70 -40
- data/bin/github-to-canvas +10 -18
- data/lib/github-to-canvas.rb +0 -6
- data/lib/github-to-canvas/canvas_interface.rb +2 -4
- data/lib/github-to-canvas/repository_converter.rb +13 -39
- data/lib/github-to-canvas/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59e47d1d256dca36a7312ef82f6953c5c50df08286a481928233fcdd4dbe0aad
|
4
|
+
data.tar.gz: 4d705224c21ac7c70e6c7543a3484baffed2f64c5069c50c070b991079d8011b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03f61185beb39e4fc34421ad7c5a90dc18e7897154fdcfe5da7d7501ae16b13974045e5c4071182f1a02c72b839cfb5688df0a73f0a2f0127ec919f1ef1493b7
|
7
|
+
data.tar.gz: 2ad4a5f5d700f377e69ce81c5c26463007faf415ca31aef149b2520e4b843c730e68c052d1467bacedc51a6f9511d94f1a89cd00a94db86081d5f65d803ad967
|
data/Gemfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
|
+
|
2
3
|
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
4
|
+
|
3
5
|
ruby "2.6.1"
|
4
|
-
|
5
|
-
gem 'json'
|
6
|
-
gem 'redcarpet'
|
7
|
-
gem 'rest-client'
|
6
|
+
|
8
7
|
# Specify your gem's dependencies in github-to-canvas.gemspec
|
8
|
+
gemspec
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ also required for some features.
|
|
25
25
|
In order to access the Canvas API, you must first generate an API key. Go to
|
26
26
|
your Canvas Account Settings and under **Approved Integrations**, create a
|
27
27
|
**New Access Token**. You will need to store this API key as an `ENV` variable
|
28
|
-
called `CANVAS_API_KEY`.
|
28
|
+
called `CANVAS_API_KEY`.
|
29
29
|
|
30
30
|
If you are using Zsh, the following command will add your new key to the top of `~/.zshrc`:
|
31
31
|
|
@@ -74,6 +74,7 @@ The GitHub to Canvas gem can be used for the following:
|
|
74
74
|
- [Map GitHub Repositories to a Canvas Course YAML file](#map)
|
75
75
|
- [Create New Canvas Course from a YAML file](#buildcourse)
|
76
76
|
- [Update Lessons in an Existing Course from a YAML file](#updatecourse)
|
77
|
+
- [Syntax Highlighting](#syntaxhighlighting)
|
77
78
|
|
78
79
|
### Creating and Updating Canvas Lessons
|
79
80
|
|
@@ -123,7 +124,7 @@ To read the contents of a remote repo:
|
|
123
124
|
github-to-canvas --read-from-github <URL>
|
124
125
|
```
|
125
126
|
|
126
|
-
This will produce an HTML conversion of the repository's
|
127
|
+
This will produce an HTML conversion of the repository's markdown. This HTML can
|
127
128
|
be directly pasted into Canvas' HTML editor if a manual process is needed.
|
128
129
|
|
129
130
|
#### Update a Canvas Lesson from a Local Repository <a name="update"></a>
|
@@ -191,30 +192,30 @@ The output will look similar to this:
|
|
191
192
|
:name: The Course's Title
|
192
193
|
:id: 111
|
193
194
|
:modules:
|
194
|
-
- :id: 2020
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
- :id: 2021
|
216
|
-
|
217
|
-
|
195
|
+
- :id: 2020
|
196
|
+
:name: First Module's Name
|
197
|
+
:lessons:
|
198
|
+
- id: slugified-page-name
|
199
|
+
title: This is the Title Of The First Lesson, a Page
|
200
|
+
indent: 0
|
201
|
+
type: Page
|
202
|
+
html_url: https://learning.flatironschool.com/courses/111/modules/items/27001
|
203
|
+
page_url: slugified-page-name
|
204
|
+
url: https://learning.flatironschool.com/api/v1/courses/111/pages/slugified-page-name
|
205
|
+
published: false
|
206
|
+
repository: ""
|
207
|
+
- id: 333
|
208
|
+
title: This is the Title Of The Second Lesson, an Assignment
|
209
|
+
indent: 1
|
210
|
+
type: Assignment
|
211
|
+
html_url: https://learning.flatironschool.com/courses/111/modules/items/27002
|
212
|
+
page_url: ""
|
213
|
+
url: https://learning.flatironschool.com/api/v1/courses/111/assignments/333
|
214
|
+
published: false
|
215
|
+
repository: ""
|
216
|
+
- :id: 2021
|
217
|
+
:name: Second Module's Name
|
218
|
+
:lessons:
|
218
219
|
```
|
219
220
|
|
220
221
|
The output YAML will not include associated GitHub repository information.
|
@@ -246,7 +247,27 @@ To create a Canvas course with this gem, you will need a correctly structured
|
|
246
247
|
YAML file with the course info, modules, lessons and associated lesson
|
247
248
|
repositories. In addition, all lessons must have a type (`Page` or
|
248
249
|
`Assignment`), a repository, and a title. Other lesson options are currently
|
249
|
-
ignored.
|
250
|
+
ignored.
|
251
|
+
|
252
|
+
Here's an example of what the YAML file should look like. Note that for Pages
|
253
|
+
the id needs to be present and match the title, based on how Canvas creates
|
254
|
+
URL slugs for pages.
|
255
|
+
|
256
|
+
```yaml
|
257
|
+
---
|
258
|
+
:name: Test Building Course
|
259
|
+
:course_code: TEST-GEM-COURSE
|
260
|
+
:modules:
|
261
|
+
- :name: Module 1
|
262
|
+
:lessons:
|
263
|
+
- title: Lesson 1
|
264
|
+
type: Assignment
|
265
|
+
repository: https://github.com/learn-co-curriculum/react-hooks-component-props-mini-project
|
266
|
+
- id: lesson-2
|
267
|
+
title: Lesson 2
|
268
|
+
type: Page
|
269
|
+
repository: https://github.com/learn-co-curriculum/phase-0-pac-1-js-variables
|
270
|
+
```
|
250
271
|
|
251
272
|
With the necessary data configured, use the `--build-course` option and pass in
|
252
273
|
the course's YAML file:
|
@@ -262,7 +283,7 @@ This command will cause the following to happen:
|
|
262
283
|
- Create the first lesson using the repository, title and type, as well as additional command options
|
263
284
|
- Add the newly created lesson to the current module
|
264
285
|
- Create the second lesson and add it to the module...
|
265
|
-
-
|
286
|
+
- Repeat process until all modules and lessons are created
|
266
287
|
|
267
288
|
#### Update Lessons in an Existing Course from a YAML file <a name="updatecourse"></a>
|
268
289
|
|
@@ -285,6 +306,23 @@ github-to-canvas --update-course YAML_FILE -lr --forkable
|
|
285
306
|
The gem will iterate over the data and update every lesson according to the
|
286
307
|
associated repository.
|
287
308
|
|
309
|
+
## Syntax Highlighting <a name="syntaxhighlighting"></a>
|
310
|
+
|
311
|
+
This gem uses the [Rouge](https://github.com/rouge-ruby/rouge) Ruby gem to add
|
312
|
+
syntax highlighting to
|
313
|
+
[fenced code blocks](https://www.markdownguide.org/extended-syntax/#syntax-highlighting).
|
314
|
+
Rouge tokenizes the fenced code blocks and generates HTML elements with CSS
|
315
|
+
classes to style code blocks. The classes generated by Rouge are intended to
|
316
|
+
work with [Pygments](https://pygments.org/).
|
317
|
+
|
318
|
+
You can download and customize CSS themes for the classes generated by Rouge at this site:
|
319
|
+
|
320
|
+
- [http://jwarby.github.io/jekyll-pygments-themes/languages/javascript.html](http://jwarby.github.io/jekyll-pygments-themes/languages/javascript.html)
|
321
|
+
|
322
|
+
After selecting your preferred CSS, you will need to
|
323
|
+
[update your Canvas theme](https://community.canvaslms.com/t5/Admin-Guide/How-do-I-upload-custom-JavaScript-and-CSS-files-to-an-account/ta-p/253)
|
324
|
+
so the CSS can run on each page.
|
325
|
+
|
288
326
|
## Known Issues
|
289
327
|
|
290
328
|
### HTML Code Snippets Do Not Render
|
@@ -319,18 +357,10 @@ Note that realigning after fixing this content with the gem will break the
|
|
319
357
|
rendering for these lessons again. A fix is planned for this issue, but has not
|
320
358
|
been implemented.
|
321
359
|
|
322
|
-
### Multi-Line Code Snippets Render as a Single Line
|
323
|
-
|
324
|
-
The Github to Canvas gem uses an existing gem, Redcarpet, to handle the Markdown to HTML
|
325
|
-
conversion. This gem does not currently support multi-line codeblocks. This
|
326
|
-
functionality has been added in the Github to Canvas gem through monkeypatching.
|
327
|
-
This error should be resolved, but if you encounter code snippet rendering
|
328
|
-
issues, please open a new issue with a markdown example to replicate the error.
|
329
|
-
|
330
360
|
### Markdown Formatting Issues Cause Errors in Canvas
|
331
361
|
|
332
362
|
An empty line should separate individual markdown headers, paragraphs and code snippets
|
333
|
-
in the markdown. Without these empty lines, the contents will be
|
363
|
+
in the markdown. Without these empty lines, the contents will be interpreted as one
|
334
364
|
continuous paragraph and ignore formatting.
|
335
365
|
|
336
366
|
### New Repos That Use a `main` Branch
|
@@ -404,7 +434,7 @@ Run `github-to-canvas --help` for additional options not listed in this Readme.
|
|
404
434
|
|
405
435
|
## Examples of Valid Images This Gem Can Convert
|
406
436
|
|
407
|
-
This gem can convert both standard inline markdown and HTML images.
|
437
|
+
This gem can convert both standard inline markdown and HTML images.
|
408
438
|
|
409
439
|
Inline Markdown:
|
410
440
|
|
@@ -416,5 +446,5 @@ HTML:
|
|
416
446
|
<img src="https://curriculum-content.s3.amazonaws.com/fewpjs/fewpjs-fetch-lab/Image_25_AsynchronousJavaScript.png" width="500">
|
417
447
|
</p>
|
418
448
|
|
419
|
-
[
|
420
|
-
[
|
449
|
+
[canvas lms api]: https://canvas.instructure.com/doc/api/index.html
|
450
|
+
[flatiron school]: https://flatironschool.com/
|
data/bin/github-to-canvas
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../lib'))
|
4
|
+
$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
|
3
5
|
|
4
6
|
require 'optparse'
|
5
|
-
|
7
|
+
require_relative '../lib/github-to-canvas'
|
6
8
|
|
7
9
|
options = {}
|
8
10
|
OptionParser.new do |opts|
|
@@ -191,8 +193,8 @@ OptionParser.new do |opts|
|
|
191
193
|
options[:clone_from_yaml] = file
|
192
194
|
end
|
193
195
|
opts.on("--contains-html",
|
194
|
-
"
|
195
|
-
|
196
|
+
"DEPRECATED: HTML in code blocks handled by Rouge gem.") do |html|
|
197
|
+
puts "--contains-html flag is DEPRECATED: HTML in code blocks handled by Rouge gem."
|
196
198
|
end
|
197
199
|
opts.on("--canvas-to-canvas COURSE",
|
198
200
|
"Copies an existing Canvas lesson into another Canvas lesson") do |canvas_to_canvas|
|
@@ -238,8 +240,7 @@ if options[:read_from_github]
|
|
238
240
|
forkable: !!options[:forkable],
|
239
241
|
fis_links: !!options[:fis],
|
240
242
|
aaq: !!options[:aaq],
|
241
|
-
prework: !!options[:prework]
|
242
|
-
contains_html: options[:contains_html])
|
243
|
+
prework: !!options[:prework])
|
243
244
|
abort
|
244
245
|
end
|
245
246
|
|
@@ -254,8 +255,7 @@ if options[:create_from_github]
|
|
254
255
|
forkable: !!options[:forkable],
|
255
256
|
fis_links: !!options[:fis],
|
256
257
|
aaq: !!options[:aaq],
|
257
|
-
prework: !!options[:prework]
|
258
|
-
contains_html: options[:contains_html])
|
258
|
+
prework: !!options[:prework])
|
259
259
|
else
|
260
260
|
puts 'Canvas course ID and lesson type required. Example: github-to-canvas --create-from-github URL --course ID --type TYPE'
|
261
261
|
end
|
@@ -274,8 +274,7 @@ if options[:align_from_github]
|
|
274
274
|
forkable: !!options[:forkable],
|
275
275
|
fis_links: !!options[:fis],
|
276
276
|
aaq: !!options[:aaq],
|
277
|
-
prework: !!options[:prework]
|
278
|
-
contains_html: options[:contains_html])
|
277
|
+
prework: !!options[:prework])
|
279
278
|
else
|
280
279
|
puts 'Canvas course ID, lesson ID, and type required. Example: github-to-canvas --create-from-github URL --course COURSE_ID --id LESSON_ID --type TYPE'
|
281
280
|
end
|
@@ -309,7 +308,6 @@ if options[:csv_build]
|
|
309
308
|
aaq: !!options[:aaq],
|
310
309
|
forkable: !!options[:forkable],
|
311
310
|
branch: options[:branch],
|
312
|
-
contains_html: options[:contains_html],
|
313
311
|
git_links: !!options[:git_links])
|
314
312
|
abort
|
315
313
|
end
|
@@ -323,7 +321,6 @@ if options[:csv_align]
|
|
323
321
|
aaq: !!options[:aaq],
|
324
322
|
forkable: !!options[:forkable],
|
325
323
|
branch: options[:branch],
|
326
|
-
contains_html: options[:contains_html],
|
327
324
|
git_links: !!options[:git_links])
|
328
325
|
abort
|
329
326
|
end
|
@@ -336,7 +333,6 @@ if options[:build_course]
|
|
336
333
|
aaq: !!options[:aaq],
|
337
334
|
prework: !!options[:prework],
|
338
335
|
forkable: !!options[:forkable],
|
339
|
-
contains_html: options[:contains_html],
|
340
336
|
git_links: !!options[:git_links])
|
341
337
|
abort
|
342
338
|
end
|
@@ -351,7 +347,6 @@ if options[:add_to_course]
|
|
351
347
|
forkable: !!options[:forkable],
|
352
348
|
aaq: !!options[:aaq],
|
353
349
|
prework: !!options[:prework],
|
354
|
-
contains_html: options[:contains_html],
|
355
350
|
git_links: !!options[:git_links])
|
356
351
|
else
|
357
352
|
puts '--course required'
|
@@ -367,7 +362,6 @@ if options[:update_course_lessons]
|
|
367
362
|
forkable: !!options[:forkable],
|
368
363
|
aaq: !!options[:aaq],
|
369
364
|
prework: !!options[:prework],
|
370
|
-
contains_html: options[:contains_html],
|
371
365
|
git_links: !!options[:git_links])
|
372
366
|
abort
|
373
367
|
end
|
@@ -433,8 +427,7 @@ if options[:create_lesson]
|
|
433
427
|
only_update_content: !!options[:only_content],
|
434
428
|
forkable: !!options[:forkable],
|
435
429
|
aaq: !!options[:aaq],
|
436
|
-
prework: !!options[:prework]
|
437
|
-
contains_html: options[:contains_html])
|
430
|
+
prework: !!options[:prework])
|
438
431
|
end
|
439
432
|
|
440
433
|
if options[:align]
|
@@ -453,6 +446,5 @@ if options[:align]
|
|
453
446
|
only_update_content: !!options[:only_content],
|
454
447
|
forkable: !!options[:forkable],
|
455
448
|
aaq: !!options[:aaq],
|
456
|
-
prework: !!options[:prework]
|
457
|
-
contains_html: options[:contains_html])
|
449
|
+
prework: !!options[:prework])
|
458
450
|
end
|
data/lib/github-to-canvas.rb
CHANGED
@@ -201,9 +201,6 @@ class GithubToCanvas
|
|
201
201
|
options[:name] = lesson[1]
|
202
202
|
options[:type] = lesson[3]
|
203
203
|
options[:branch] = "master" if !options[:branch]
|
204
|
-
if !options[:contains_html]
|
205
|
-
options[:contains_html] = (lesson[4] == "yes" || lesson[4] == "Yes") ? true : false
|
206
|
-
end
|
207
204
|
|
208
205
|
|
209
206
|
html = RepositoryConverter.remote_file_conversion(options)
|
@@ -243,9 +240,6 @@ class GithubToCanvas
|
|
243
240
|
options[:id] = lesson[5]
|
244
241
|
options[:course_id] = lesson[6]
|
245
242
|
options[:branch] = "master" if !options[:branch]
|
246
|
-
if !options[:contains_html]
|
247
|
-
options[:contains_html] = (lesson[4] == "yes" || lesson[4] == "Yes") ? true : false
|
248
|
-
end
|
249
243
|
|
250
244
|
|
251
245
|
html = RepositoryConverter.remote_file_conversion(options)
|
@@ -217,12 +217,9 @@ class CanvasInterface
|
|
217
217
|
response = RestClient.get(url, self.headers)
|
218
218
|
lessons = JSON.parse(response.body)
|
219
219
|
lessons = lessons.map do |lesson|
|
220
|
-
if lesson["type"] == "ExternalUrl"
|
221
|
-
next
|
222
|
-
end
|
223
220
|
lesson = lesson.slice("id","title","name","indent","type","html_url","page_url","url","completion_requirement", "published")
|
224
221
|
lesson["repository"] = ""
|
225
|
-
lesson['id'] = lesson['url']
|
222
|
+
lesson['id'] = lesson['url']&.gsub(/^(.*[\\\/])/,'')
|
226
223
|
lesson
|
227
224
|
end
|
228
225
|
if ([200, 201].include? response.code) && (!lessons.empty?)
|
@@ -247,6 +244,7 @@ class CanvasInterface
|
|
247
244
|
course_info = YAML.load(File.read("#{Dir.pwd}/#{options[:file_to_convert]}"))
|
248
245
|
course_info[:modules] = course_info[:modules].map do |mod|
|
249
246
|
mod[:lessons] = mod[:lessons].map do |lesson|
|
247
|
+
next lesson unless lesson.key?("url")
|
250
248
|
|
251
249
|
url = lesson["url"]
|
252
250
|
response = RestClient.get(url, headers={
|
@@ -1,14 +1,9 @@
|
|
1
1
|
require 'redcarpet'
|
2
|
-
|
3
|
-
|
4
|
-
"<pre>" \
|
5
|
-
"<code>#{multi_line(code)}</code>" \
|
6
|
-
"</pre>"
|
7
|
-
end
|
2
|
+
require 'rouge'
|
3
|
+
require 'rouge/plugins/redcarpet'
|
8
4
|
|
9
|
-
|
10
|
-
|
11
|
-
end
|
5
|
+
class CustomRender < Redcarpet::Render::HTML
|
6
|
+
include Rouge::Plugins::Redcarpet
|
12
7
|
end
|
13
8
|
|
14
9
|
class RepositoryConverter
|
@@ -16,7 +11,6 @@ class RepositoryConverter
|
|
16
11
|
# GithubInterface.get_updated_repo(options[:filepath], options[:branch])
|
17
12
|
markdown = RepositoryInterface.read_local_file(options[:filepath], options[:file_to_convert])
|
18
13
|
raw_remote_url = self.set_raw_image_remote_url(options[:filepath])
|
19
|
-
markdown = self.escape_existing_html(markdown) if options[:contains_html]
|
20
14
|
markdown = self.fix_local_images(options, markdown, raw_remote_url)
|
21
15
|
html = self.convert_to_html(markdown)
|
22
16
|
# self.fix_local_html_links(options, html, options[:filepath])
|
@@ -25,14 +19,6 @@ class RepositoryConverter
|
|
25
19
|
def self.remote_file_conversion(options)
|
26
20
|
markdown = GithubInterface.read_remote(options[:filepath])
|
27
21
|
raw_remote_url = self.set_raw_image_remote_url(options[:filepath])
|
28
|
-
if options[:contains_html]
|
29
|
-
begin
|
30
|
-
markdown = self.escape_existing_html(markdown)
|
31
|
-
rescue
|
32
|
-
puts "Error reading remote markdown"
|
33
|
-
abort
|
34
|
-
end
|
35
|
-
end
|
36
22
|
if (!options[:branch])
|
37
23
|
options[:branch] = 'master'
|
38
24
|
end
|
@@ -42,11 +28,16 @@ class RepositoryConverter
|
|
42
28
|
end
|
43
29
|
|
44
30
|
def self.convert_to_html(markdown)
|
45
|
-
|
46
|
-
|
31
|
+
options = {
|
32
|
+
tables: true,
|
33
|
+
autolink: true,
|
34
|
+
fenced_code_blocks: true,
|
35
|
+
no_intra_emphasis: true
|
36
|
+
}
|
37
|
+
redcarpet = Redcarpet::Markdown.new(CustomRender, options)
|
47
38
|
html = redcarpet.render(markdown)
|
48
39
|
puts "Markdown converted to HTML"
|
49
|
-
|
40
|
+
html
|
50
41
|
end
|
51
42
|
|
52
43
|
def self.adjust_converted_html(options, html)
|
@@ -58,26 +49,9 @@ class RepositoryConverter
|
|
58
49
|
html = self.add_fis_links(options, html)
|
59
50
|
end
|
60
51
|
|
61
|
-
if options[:contains_html]
|
62
|
-
html = self.fix_escaped_inline_html_code(html)
|
63
|
-
end
|
64
52
|
html
|
65
53
|
end
|
66
|
-
|
67
|
-
def self.fix_escaped_inline_html_code(html)
|
68
|
-
|
69
|
-
html
|
70
|
-
end
|
71
|
-
|
72
|
-
def self.escape_existing_html(markdown)
|
73
|
-
markdown = markdown.gsub(/```(\n|.)*?```/) { |code|
|
74
|
-
# all code blocks
|
75
|
-
code = code.gsub("<", "<")
|
76
|
-
code = code.gsub(">", ">")
|
77
|
-
}
|
78
|
-
markdown
|
79
|
-
end
|
80
|
-
|
54
|
+
|
81
55
|
def self.remove_header_and_footer(html)
|
82
56
|
new_html = self.remove_html_header(html)
|
83
57
|
# new_html = self.remove_footer(new_html)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-to-canvas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- maxwellbenton
|
@@ -11,47 +11,47 @@ cert_chain: []
|
|
11
11
|
date: 2020-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: redcarpet
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rouge
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '3.26'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '3.26'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
|
-
rubygems_version: 3.
|
111
|
+
rubygems_version: 3.0.9
|
112
112
|
signing_key:
|
113
113
|
specification_version: 4
|
114
114
|
summary: github-to-canvas is a tool for migrating and aligning GitHub content with
|