github-to-canvas 0.0.41 → 0.0.46

Sign up to get free protection for your applications and to get access to all the features.
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