lib/learn_open/opener.rb in learn-open-1.2.0 vs lib/learn_open/opener.rb in learn-open-1.2.1

- old
+ new

@@ -1,7 +1,8 @@ module LearnOpen class Opener + HOME_DIR = File.expand_path("~") attr_reader :editor, :client, :lessons_dir, :file_path, :get_next_lesson, :token attr_accessor :lesson, :repo_dir, :lesson_is_lab, :lesson_id, :later_lesson, :dot_learn def self.run(lesson:, editor_specified:, get_next_lesson:) new(lesson, editor_specified, get_next_lesson).run @@ -12,12 +13,12 @@ @client = LearnWeb::Client.new(token: @token) @lesson = lesson @editor = editor @get_next_lesson = get_next_lesson - @lessons_dir = YAML.load(File.read(File.expand_path('~/.learn-config')))[:learn_directory] - @file_path = File.expand_path('~/.learn-open-tmp') + @lessons_dir = YAML.load(File.read("#{HOME_DIR}/.learn-config"))[:learn_directory] + @file_path = "#{HOME_DIR}/.learn-open-tmp" end def run setup_tmp_file @@ -35,10 +36,22 @@ open_with_editor cd_to_lesson end end + def repo_exists? + done_labs = "#{HOME_DIR}/.done_labs" + if File.exists?(done_labs) + File. + readlines(done_labs). + grep(/#{repo_dir}/). + any? + else + File.exists?("#{lessons_dir}/#{repo_dir}") + end + end + private def ping_fork_completion(retries=3) begin Timeout::timeout(15) do @@ -244,13 +257,9 @@ end if dot_learn && dot_learn[:github] == false ping_fork_completion end - end - - def repo_exists? - File.exists?("#{lessons_dir}/#{repo_dir}") end def open_with_editor if ios_lesson? open_ios_lesson