github-to-canvas 0.0.41 → 0.0.46

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: 06a0c55312a2f98cfab18af28e44eff85e7e278178c92c2f87b0ea06e274dc7b
4
- data.tar.gz: e6692af5eb0439d14239a3945d522a55986943a95f2987ba14c651e579459c34
3
+ metadata.gz: ddda58c3ed202c82e6c0f71a80178a7fbc72e593b9357b5449ee2116d35f68cf
4
+ data.tar.gz: ea08df0af727814a06508291e9e2d0159f5e268ed7b54858002a74cb6529a26d
5
5
  SHA512:
6
- metadata.gz: a1396b11ac39793429af8dc9ae34272d3ebc988475e68294acea92f0df1fd59d190eb5dce02671a1389267c62fed234b207dd67dcf894116b66ea4e914493adf
7
- data.tar.gz: d9ce9f1eb8ef7c8ce1f3675b16f5d8b57e1cdecd1e39f0988a2dad6c14439903e1bad9dce3ff39a7f132d0a1afcd265142d8bf5a2f607fa7ac29cd1510c46dcd
6
+ metadata.gz: a62890799c51f119081bca8a26455ff46d55e9f796a3a3f783f2b39a47c16439b2ca1528eee528b54c2c8453fc865ec62e7b5526cdf925199b24a243fddc7e33
7
+ data.tar.gz: 980f0d8f8265f2cffa75e8f5659bbb4e7d34efaf76c4d8ff1748e9ee2357fbca3c10903ff63a5bcf9f0fc7c60c8a38a2374174c18235dfb4a70843f4350baf23
@@ -129,9 +129,23 @@ end
129
129
 
130
130
  if !options[:name]
131
131
  if options[:file_to_convert]
132
- options[:name] = options[:file_to_convert]
132
+ markdown = File.read("#{Dir.pwd}/#{options[:file_to_convert]}")
133
+ if markdown.match?(/^# .+?\n\n/)
134
+ options[:name] = markdown.match(/^# .+?\n\n/)[0].strip.gsub("# ","").gsub("#","")
135
+ elsif markdown.match?(/^# .+?\n/)
136
+ options[:name] = markdown.match(/^# .+?\n/)[0].strip.gsub("# ","").gsub("#","")
137
+ else
138
+ options[:name] = options[:file_to_convert]
139
+ end
133
140
  else
134
- options[:name] = File.basename(Dir.getwd)
141
+ markdown = File.read("#{Dir.pwd}/README.md")
142
+ if markdown.match?(/^# .+?\n\n/)
143
+ options[:name] = markdown.match(/^# .+?\n\n/)[0].strip.gsub("# ","").gsub("#","")
144
+ elsif markdown.match?(/^# .+?\n/)
145
+ options[:name] = markdown.match(/^# .+?\n/)[0].strip.gsub("# ","").gsub("#","")
146
+ else
147
+ options[:name] = File.basename(Dir.getwd)
148
+ end
135
149
  options[:file_to_convert] = "README.md"
136
150
  end
137
151
  end
@@ -1,8 +1,12 @@
1
1
  require 'yaml'
2
2
  class CanvasDotfile
3
3
 
4
+ def self.exists?
5
+ File.file?(".canvas")
6
+ end
7
+
4
8
  def self.update_or_create(filepath, response, course, type)
5
- if File.file?(".canvas")
9
+ if self.exists?
6
10
  if type == "assignment" || type == "discussion"
7
11
  canvas_data = self.update_assignment_data(response, course, type)
8
12
  else
@@ -22,11 +26,6 @@ class CanvasDotfile
22
26
  File.write("#{filepath}/.canvas", canvas_data.to_yaml)
23
27
  end
24
28
 
25
- def self.commit_canvas_dotfile(filepath)
26
- GithubInterface.git_add(filepath, '.canvas')
27
- GithubInterface.git_commit(filepath, 'AUTO: add .canvas file after migration')
28
- end
29
-
30
29
  def self.read_canvas_data
31
30
  if File.file?(".canvas")
32
31
  YAML.load(File.read(".canvas"))
@@ -58,7 +58,8 @@ class CanvasInterface
58
58
  index = nil
59
59
  end
60
60
  end
61
-
61
+ puts ""
62
+ puts ""
62
63
  puts "Info for Course #{course} from #{ENV['CANVAS_API_PATH']}"
63
64
  puts ""
64
65
  puts "## Pages ##"
@@ -114,7 +115,7 @@ class CanvasInterface
114
115
  })
115
116
  rescue
116
117
  puts "Something went wrong while pushing lesson #{id} to course #{course_id}"
117
- # abort
118
+ nil
118
119
  end
119
120
  end
120
121
 
@@ -1,7 +1,7 @@
1
1
  class CreateCanvasLesson
2
2
 
3
3
  def initialize(course, filepath, file_to_convert, branch, name, type, save_to_github, fis_links, remove_header_and_footer)
4
- name = name.split(/[- _]/).map(&:capitalize).join(' ')
4
+ # name = name.split(/[- _]/).map(&:capitalize).join(' ')
5
5
  begin
6
6
  markdown = File.read("#{filepath}/#{file_to_convert}")
7
7
  rescue
@@ -18,15 +18,21 @@ class CreateCanvasLesson
18
18
  new_html = RepositoryConverter.add_fis_links(filepath, new_html)
19
19
  end
20
20
  response = CanvasInterface.submit_to_canvas(course, type, name, new_html)
21
+
22
+ puts 'Creating .canvas file'
23
+ CanvasDotfile.update_or_create(filepath, response, course, type)
24
+
25
+ puts "Canvas lesson created. Lesson available at #{response['html_url']}."
26
+
27
+ # If --save option is used, the .canvas file gets committed and pushed to the remote repo
21
28
  if save_to_github
22
- puts 'Creating .canvas file'
23
- CanvasDotfile.update_or_create(filepath, response, course, type)
29
+ puts 'Adding .canvas file'
30
+ GithubInterface.git_add(filepath, '.canvas')
24
31
  puts 'Commiting .canvas file'
25
- CanvasDotfile.commit_canvas_dotfile(filepath)
32
+ GithubInterface.git_commit(filepath, 'AUTO: add .canvas file after migration')
26
33
  puts 'Pushing .canvas file'
27
34
  GithubInterface.git_push(filepath, branch)
28
35
  end
29
- puts "Canvas lesson created. Lesson available at #{response['html_url']}."
30
36
  end
31
37
 
32
38
  end
@@ -11,7 +11,8 @@ class RepositoryConverter
11
11
  end
12
12
 
13
13
  def self.remove_header(readme)
14
- readme.gsub(/^# .+?\n\n/,"")
14
+ readme.gsub!(/^# .+?\n\n/,"")
15
+ readme.gsub(/^# .+?\n/,"")
15
16
  end
16
17
 
17
18
  def self.remove_footer(readme)
@@ -40,27 +41,27 @@ class RepositoryConverter
40
41
  end
41
42
 
42
43
  def self.adjust_local_markdown_images(readme, raw_remote_url, branch)
43
- readme.gsub!(/\!\[.+\]\(.+\)/) {|image|
44
- if !image.match('amazonaws.com') && !image.match('https://') && !image.match('youtube')
45
- image.gsub!(/\(.+\)/) { |path|
44
+ readme.gsub!(/\!\[.+\]\(.+\)/) {|image_markdown|
45
+ if !image_markdown.match?('amazonaws.com') && !image_markdown.match?('https://') && !image_markdown.match?('http://') && !image_markdown.match?('youtube')
46
+ image_markdown.gsub!(/\(.+\)/) { |path|
46
47
  path.delete_prefix!("(")
47
48
  path.delete_suffix!(")")
48
49
  "(" + raw_remote_url + "/#{branch}/" + path + ")"
49
50
  }
50
51
  end
51
- image
52
+ image_markdown
52
53
  }
53
54
  end
54
55
 
55
56
  def self.adjust_local_html_images(readme, raw_remote_url)
56
- readme.gsub!(/src=\"[\s\S]*?" /) { |img|
57
- if !img.match('amazonaws.com') && !img.match('https://') && !img.match('youtube')
58
- img.gsub!(/\"/, "")
59
- img.gsub!(/src=/, '')
60
- img.strip!
61
- 'src="' + raw_remote_url + '/master/' + img + '"'
57
+ readme.gsub!(/src=(\'|\")[\s\S]*?(\'|\")/) { |image_source|
58
+ if !image_source.match?('amazonaws.com') && !image_source.match?('https://') && !image_source.match?('http://') && !image_source.match?('youtube')
59
+ image_source.gsub!(/(\'|\")/, "")
60
+ image_source.gsub!(/src=/, '')
61
+ image_source.strip!
62
+ 'src="' + raw_remote_url + '/master/' + image_source + '"'
62
63
  else
63
- img
64
+ image_source
64
65
  end
65
66
  }
66
67
  end
@@ -1,7 +1,7 @@
1
1
  class UpdateCanvasLesson
2
2
 
3
3
  def initialize(course, filepath, file_to_convert, branch, name, type, save_to_github, fis_links, remove_header_and_footer, only_update_content, id)
4
- name = name.split(/[- _]/).map(&:capitalize).join(' ')
4
+ # name = name.split(/[- _]/).map(&:capitalize).join(' ')
5
5
  begin
6
6
  markdown = File.read("#{filepath}/#{file_to_convert}")
7
7
  rescue
@@ -12,25 +12,46 @@ class UpdateCanvasLesson
12
12
  end
13
13
 
14
14
  def update_canvas_lesson(course, markdown, filepath, branch, name, type, save_to_github, fis_links, remove_header_and_footer, only_update_content, id)
15
+ # Pulls any updates that exist on GitHub
15
16
  GithubInterface.get_updated_repo(filepath, branch)
17
+
18
+ # Converts markdown to HTML
19
+ # Default is README.md. --file <FILENAME> can be used to override default.
16
20
  new_html = RepositoryConverter.convert(filepath, markdown, branch, remove_header_and_footer)
21
+
22
+ # adds Flatiron School specific header and footer
17
23
  if fis_links
18
- new_html = RepositoryConverter.add_fis_links(filepath, new_html) # adds Flatiron School specific header and footer
24
+ new_html = RepositoryConverter.add_fis_links(filepath, new_html)
19
25
  end
26
+
27
+ # Read the local .canvas file if --id <ID> is not used. Otherwise, use provided ID (--course <COURSE> also required)
20
28
  if !id
21
- # If no assignment or page ID is provided, tries to get info from a .canvas file
22
29
  canvas_data = CanvasDotfile.read_canvas_data
23
- canvas_data[:lessons].each { |lesson|
30
+ canvas_data[:lessons] = canvas_data[:lessons].map { |lesson|
24
31
  response = CanvasInterface.update_existing_lesson(lesson[:course_id], lesson[:id], lesson[:type], name, new_html, only_update_content)
25
- # puts "Canvas lesson created. Lesson available at #{response['html_url']}."
26
32
  }
27
33
  else
28
- # If an ID is provided, uses the ID instead of the .canvas file
34
+ # If an ID (and course) are provided, they are used instead of the .canvas file
35
+ # Gets the current lesson's type (page or assignment)
29
36
  info = CanvasInterface.get_lesson_info(course, id)
30
- CanvasInterface.update_existing_lesson(course, id, info[1], name, new_html, only_update_content)
37
+
38
+ # Implements update on Canvas
39
+ response = JSON.parse(CanvasInterface.update_existing_lesson(course, id, info[1], name, new_html, only_update_content))
40
+
41
+ # Updates or creates a local .canvas file
42
+ CanvasDotfile.update_or_create(filepath, response, course, info[1])
31
43
  end
44
+ # If --save option is used, the .canvas file gets committed and pushed to the remote repo
45
+ if save_to_github
46
+ puts 'Adding .canvas file'
47
+ GithubInterface.git_add(filepath, '.canvas')
48
+ puts 'Commiting .canvas file'
49
+ GithubInterface.git_commit(filepath, 'AUTO: add .canvas file after migration')
50
+ puts 'Pushing .canvas file'
51
+ GithubInterface.git_push(filepath, branch)
52
+ end
53
+
32
54
  end
33
-
34
55
 
35
56
 
36
57
  end
@@ -1,3 +1,3 @@
1
1
  class GithubToCanvas
2
- VERSION = "0.0.41"
2
+ VERSION = "0.0.46"
3
3
  end
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.0.41
4
+ version: 0.0.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - maxwellbenton