lib/learn_open/opener.rb in learn-open-1.1.3 vs lib/learn_open/opener.rb in learn-open-1.1.4
- old
+ new
@@ -1,9 +1,9 @@
module LearnOpen
class Opener
attr_reader :editor, :client, :lessons_dir, :file_path, :get_next_lesson
- attr_accessor :lesson, :repo_dir, :lesson_is_lab, :lesson_id
+ attr_accessor :lesson, :repo_dir, :lesson_is_lab, :lesson_id, :later_lesson
def self.run(lesson:, editor_specified:, get_next_lesson:)
new(lesson, editor_specified, get_next_lesson).run
end
@@ -21,10 +21,12 @@
def run
setup_tmp_file
set_lesson
+ warn_if_necessary
+
if lesson_is_readme?
open_readme
else
fork_repo
clone_repo
@@ -34,10 +36,36 @@
end
end
private
+ def warn_if_necessary
+ temp_args = nil
+
+ if self.later_lesson
+ puts 'WARNING: You are attempting to open a lesson that is beyond your current lesson.'
+ print 'Are you sure you want to continue? [Yn]: '
+
+ if ARGV.any?
+ temp_args = ARGV
+ ARGV.clear
+ end
+
+ warn_response = gets.chomp.downcase
+
+ if !warn_response.empty? && !['yes', 'y'].include?(warn_response)
+ exit
+ end
+ end
+
+ if temp_args
+ temp_args.each do |arg|
+ ARGV << arg
+ end
+ end
+ end
+
def setup_tmp_file
FileUtils.touch(file_path)
File.write(file_path, '')
end
@@ -51,19 +79,22 @@
if !lesson && !get_next_lesson
puts "Getting current lesson..."
self.lesson = get_current_lesson_forked_repo
self.lesson_is_lab = current_lesson.lab
self.lesson_id = current_lesson.id
+ self.later_lesson = false
elsif !lesson && get_next_lesson
puts "Getting next lesson..."
self.lesson = get_next_lesson_forked_repo
self.lesson_is_lab = next_lesson.lab
self.lesson_id = next_lesson.id
+ self.later_lesson = false
else
puts "Looking for lesson..."
self.lesson = ensure_correct_lesson.repo_slug
self.lesson_is_lab = correct_lesson.lab
self.lesson_id = correct_lesson.lesson_id
+ self.later_lesson = correct_lesson.later_lesson
end
self.repo_dir = lesson.split('/').last
end