learn-open 1.1.59 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/learn-open.gemspec +1 -1
- data/lib/learn_open/opener.rb +54 -21
- data/lib/learn_open/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7330aa259179cd5f2c28ba41d279ac632266ba03
|
4
|
+
data.tar.gz: a70cf18a1f3791570d59a3185de77a2f9b572501
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3cdc0b4da3b50bb866ac3257b5ac8f6b723276eeaa1fa998342af876d9cf4bc866cfd5745a004b3f870285e7523f1c3d5af0a7cd250ebc3e9b4b9eb9c03fc8f
|
7
|
+
data.tar.gz: f6e7f8a06fa9feb544a8682defa64d5b139ed20d93a33c7559f87ff60ad3c171986f921b5fba666f82968f50d41281da8a533ecfac7a65eda5c82aceb4e7912e
|
data/learn-open.gemspec
CHANGED
data/lib/learn_open/opener.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
module LearnOpen
|
2
2
|
class Opener
|
3
|
-
attr_reader :editor, :client, :lessons_dir, :file_path, :get_next_lesson
|
4
|
-
attr_accessor :lesson, :repo_dir, :lesson_is_lab, :lesson_id, :later_lesson
|
3
|
+
attr_reader :editor, :client, :lessons_dir, :file_path, :get_next_lesson, :token
|
4
|
+
attr_accessor :lesson, :repo_dir, :lesson_is_lab, :lesson_id, :later_lesson, :dot_learn
|
5
5
|
|
6
6
|
def self.run(lesson:, editor_specified:, get_next_lesson:)
|
7
7
|
new(lesson, editor_specified, get_next_lesson).run
|
8
8
|
end
|
9
9
|
|
10
10
|
def initialize(lesson, editor, get_next_lesson)
|
11
|
-
_login, token = Netrc.read['learn-config']
|
12
|
-
@client
|
11
|
+
_login, @token = Netrc.read['learn-config']
|
12
|
+
@client = LearnWeb::Client.new(token: @token)
|
13
13
|
|
14
14
|
@lesson = lesson
|
15
15
|
@editor = editor
|
@@ -39,6 +39,29 @@ module LearnOpen
|
|
39
39
|
|
40
40
|
private
|
41
41
|
|
42
|
+
def ping_fork_completion(retries=3)
|
43
|
+
begin
|
44
|
+
Timeout::timeout(15) do
|
45
|
+
client.submit_event(
|
46
|
+
event: 'fork',
|
47
|
+
learn_oauth_token: token,
|
48
|
+
repo_name: repo_dir,
|
49
|
+
base_org_name: lesson.split('/')[0],
|
50
|
+
forkee: { full_name: nil }
|
51
|
+
)
|
52
|
+
end
|
53
|
+
rescue Timeout::Error
|
54
|
+
if retries > 0
|
55
|
+
puts "There was a problem forking and cloning this lesson. Retrying..."
|
56
|
+
ping_fork_completion(retries-1)
|
57
|
+
else
|
58
|
+
puts "There is an issue connecting to Learn. Please try again."
|
59
|
+
File.write(file_path, 'ERROR: Error connecting to Learn')
|
60
|
+
exit
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
42
65
|
def warn_if_necessary
|
43
66
|
temp_args = nil
|
44
67
|
|
@@ -83,18 +106,21 @@ module LearnOpen
|
|
83
106
|
self.lesson_is_lab = current_lesson.lab
|
84
107
|
self.lesson_id = current_lesson.id
|
85
108
|
self.later_lesson = false
|
109
|
+
self.dot_learn = current_lesson.dot_learn
|
86
110
|
elsif !lesson && get_next_lesson
|
87
111
|
puts "Getting next lesson..."
|
88
112
|
self.lesson = get_next_lesson_forked_repo
|
89
113
|
self.lesson_is_lab = next_lesson.lab
|
90
114
|
self.lesson_id = next_lesson.id
|
91
115
|
self.later_lesson = false
|
116
|
+
self.dot_learn = next_lesson.dot_learn
|
92
117
|
else
|
93
118
|
puts "Looking for lesson..."
|
94
|
-
self.lesson = ensure_correct_lesson.
|
119
|
+
self.lesson = ensure_correct_lesson.clone_repo
|
95
120
|
self.lesson_is_lab = correct_lesson.lab
|
96
121
|
self.lesson_id = correct_lesson.lesson_id
|
97
122
|
self.later_lesson = correct_lesson.later_lesson
|
123
|
+
self.dot_learn = correct_lesson.dot_learn
|
98
124
|
end
|
99
125
|
|
100
126
|
self.repo_dir = lesson.split('/').last
|
@@ -111,7 +137,7 @@ module LearnOpen
|
|
111
137
|
def get_current_lesson_forked_repo(retries=3)
|
112
138
|
begin
|
113
139
|
Timeout::timeout(15) do
|
114
|
-
current_lesson.
|
140
|
+
current_lesson.clone_repo
|
115
141
|
end
|
116
142
|
rescue Timeout::Error
|
117
143
|
if retries > 0
|
@@ -128,7 +154,7 @@ module LearnOpen
|
|
128
154
|
def get_next_lesson_forked_repo(retries=3)
|
129
155
|
begin
|
130
156
|
Timeout::timeout(15) do
|
131
|
-
next_lesson.
|
157
|
+
next_lesson.clone_repo
|
132
158
|
end
|
133
159
|
rescue Timeout::Error
|
134
160
|
if retries > 0
|
@@ -167,18 +193,21 @@ module LearnOpen
|
|
167
193
|
if !repo_exists?
|
168
194
|
File.write(file_path, 'Forking repository...')
|
169
195
|
puts "Forking lesson..."
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
196
|
+
|
197
|
+
if !dot_learn || dot_learn[:github] != false
|
198
|
+
begin
|
199
|
+
Timeout::timeout(15) do
|
200
|
+
client.fork_repo(repo_name: repo_dir)
|
201
|
+
end
|
202
|
+
rescue Timeout::Error
|
203
|
+
if retries > 0
|
204
|
+
puts "There was a problem forking this lesson. Retrying..."
|
205
|
+
fork_repo(retries-1)
|
206
|
+
else
|
207
|
+
puts "There is an issue connecting to Learn. Please try again."
|
208
|
+
File.write(file_path, 'ERROR: Error connecting to Learn')
|
209
|
+
exit
|
210
|
+
end
|
182
211
|
end
|
183
212
|
end
|
184
213
|
end
|
@@ -213,6 +242,10 @@ module LearnOpen
|
|
213
242
|
end
|
214
243
|
end
|
215
244
|
end
|
245
|
+
|
246
|
+
if dot_learn && dot_learn[:github] == false
|
247
|
+
ping_fork_completion
|
248
|
+
end
|
216
249
|
end
|
217
250
|
|
218
251
|
def repo_exists?
|
@@ -242,10 +275,10 @@ module LearnOpen
|
|
242
275
|
File.write(file_path, 'ERROR: Problem parsing lesson data. Try again.')
|
243
276
|
exit
|
244
277
|
end
|
245
|
-
rescue NoMethodError => e
|
278
|
+
rescue NoMethodError, Errno::ENOENT => e
|
246
279
|
if xcodeproj_file? || xcworkspace_file?
|
247
280
|
true
|
248
|
-
elsif e.message.match(/for false:FalseClass/)
|
281
|
+
elsif e.message.match(/for false:FalseClass/) || e.message.match(/No such file or directory/)
|
249
282
|
false
|
250
283
|
else
|
251
284
|
puts "Sorry, there seems to be a problem with this lesson. Please submit a bug report to bugs@learn.co and try again later."
|
data/lib/learn_open/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: learn-open
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flatiron School
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
75
|
+
version: 1.5.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: 1.5.0
|
83
83
|
description:
|
84
84
|
email:
|
85
85
|
- learn@flatironschool.com
|