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