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