learn-open 1.2.26 → 1.2.27

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5051e016deae305afb850fb1e2a9e0bc8cec075b99a061bf474eab8b91be57a
4
- data.tar.gz: 7442920700a29f28b714220e6ad46975f3149af89851930630b9fa36abca1549
3
+ metadata.gz: eed604cd38477a398c08a0f865919e776f63db144f9e447af7af398c6b12f0f5
4
+ data.tar.gz: 80de4e7cc2e539d87e866eb7ab1c87fee136787d68387edd67fb092fdcaa377e
5
5
  SHA512:
6
- metadata.gz: 437805ba9ef05fffb211425b034c9d99097e17e28b4bfb8b85fb134555805488ded5002a05926628f358232cf1e211d720720ddca31a183ca7e5b946b7a8e619
7
- data.tar.gz: 431ac6bb126c11041caa15e7a663d0283439c7ad6db4ca69e241ebf847e7b40454e178fb94c929fc441799c9e4e2f8483382037a02e128a676750a01606f6186
6
+ metadata.gz: 364185f316c52cbf5f92e83806ec846a5a59ef701774c03613a4efd421fe80b3aef4d382dd22d9f36c4e57dbbdcdb9dddc0c21a2d422c45c930c1fcf9ea5b0b5
7
+ data.tar.gz: 14e9684582c1afe07b72e509280979e4e9c20dbe8d6d12bb368646ab391163ea137a67362345f6c0d67d8fb68bf81bb93f763d20fd4867b6f0dc353fb276262e
@@ -11,10 +11,6 @@ module LearnOpen
11
11
  exec("#{shell} -l")
12
12
  end
13
13
 
14
- def self.watch_dir(dir, action)
15
- spawn("while inotifywait -qre create,delete,move,close_write --exclude \"#{excluded_dirs}\" #{dir}; do #{action}; done")
16
- end
17
-
18
14
  def self.spawn(command, block: false)
19
15
  pid = Process.spawn(command, [:out, :err] => File::NULL)
20
16
  Process.waitpid(pid) if block
@@ -65,16 +65,6 @@ module LearnOpen
65
65
  logger.log("Done.")
66
66
  io.puts "Done."
67
67
  end
68
-
69
- def warn_if_necessary(lesson)
70
- return unless lesson.later_lesson
71
-
72
- io.puts 'WARNING: You are attempting to open a lesson that is beyond your current lesson.'
73
- io.print 'Are you sure you want to continue? [Y/n]: '
74
-
75
- warn_response = io.gets.chomp.downcase
76
- exit if !['yes', 'y'].include?(warn_response)
77
- end
78
68
  end
79
69
  end
80
70
  end
@@ -7,7 +7,6 @@ module LearnOpen
7
7
 
8
8
  def open_readme(lesson)
9
9
  when_valid(lesson) do
10
- warn_if_necessary(lesson)
11
10
  io.puts "Opening readme..."
12
11
  run_custom_command(:browser_open, {url: lesson.to_url})
13
12
  end
@@ -15,7 +14,6 @@ module LearnOpen
15
14
 
16
15
  def open_jupyter_lab(lesson, location, editor, _clone_only)
17
16
  when_valid(lesson) do
18
- warn_if_necessary(lesson)
19
17
  io.puts "Opening Jupyter Lesson..."
20
18
  run_custom_command(:browser_open, {url: lesson.to_url})
21
19
  end
@@ -23,7 +21,6 @@ module LearnOpen
23
21
 
24
22
  def open_lab(lesson, location, editor, clone_only)
25
23
  when_valid(lesson) do
26
- warn_if_necessary(lesson)
27
24
  case lesson
28
25
  when LearnOpen::Lessons::IosLesson
29
26
  super
@@ -2,13 +2,11 @@ module LearnOpen
2
2
  module Environments
3
3
  class LinuxEnvironment < BaseEnvironment
4
4
  def open_readme(lesson)
5
- warn_if_necessary(lesson)
6
5
  io.puts "Opening readme..."
7
6
  system_adapter.run_command("xdg-open #{lesson.to_url}")
8
7
  end
9
8
 
10
9
  def open_jupyter_lab(lesson, location, _editor, _clone_only)
11
- warn_if_necessary(lesson)
12
10
  io.puts "Opening Jupyter Lesson..."
13
11
  system_adapter.run_command("xdg-open #{lesson.to_url}")
14
12
  end
@@ -14,13 +14,11 @@ module LearnOpen
14
14
  end
15
15
 
16
16
  def open_readme(lesson)
17
- warn_if_necessary(lesson)
18
17
  io.puts "Opening readme..."
19
18
  system_adapter.run_command("open -a Safari #{lesson.to_url}")
20
19
  end
21
20
 
22
21
  def open_lab(lesson, location, editor, clone_only)
23
- warn_if_necessary(lesson)
24
22
  case lesson
25
23
  when LearnOpen::Lessons::IosLesson
26
24
  download_lesson(lesson, location)
@@ -33,7 +31,6 @@ module LearnOpen
33
31
  end
34
32
 
35
33
  def open_jupyter_lab(lesson, location, editor, _clone_only)
36
- warn_if_necessary(lesson)
37
34
  io.puts "Opening Jupyter Lesson..."
38
35
  system_adapter.run_command("open -a Safari #{lesson.to_url}")
39
36
  end
@@ -59,13 +56,11 @@ module LearnOpen
59
56
 
60
57
  class MacWithChromeEnvironment < MacEnvironment
61
58
  def open_readme(lesson)
62
- warn_if_necessary(lesson)
63
59
  io.puts "Opening readme..."
64
60
  system_adapter.run_command("open -a 'Google Chrome' #{lesson.to_url}")
65
61
  end
66
62
 
67
63
  def open_jupyter_lab(lesson, location, _editor, _clone_only)
68
- warn_if_necessary(lesson)
69
64
  io.puts "Opening Jupyter Lesson..."
70
65
  system_adapter.run_command("open -a 'Google Chrome' #{lesson.to_url}")
71
66
  end
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module LearnOpen
2
3
  class FileBackupStarter
4
+ BACKUP_LAB_PROCESS = "tail -f ~/inotify.log | while read change do; backup-lab; done"
5
+
3
6
  attr_reader :lesson, :location, :system_adapter
4
7
 
5
8
  def self.call(lesson, location, options)
@@ -14,7 +17,7 @@ module LearnOpen
14
17
 
15
18
  def call
16
19
  system_adapter.spawn("restore-lab", block: true)
17
- system_adapter.watch_dir("#{lesson.to_path}", "backup-lab")
20
+ system_adapter.spawn(BACKUP_LAB_PROCESS)
18
21
  end
19
22
  end
20
23
  end
@@ -1,3 +1,3 @@
1
1
  module LearnOpen
2
- VERSION = '1.2.26'
2
+ VERSION = '1.2.27'
3
3
  end
@@ -118,8 +118,8 @@ describe LearnOpen::Environments::IDEEnvironment do
118
118
  .to receive(:spawn)
119
119
  .with("restore-lab", {:block=>true})
120
120
  expect(system_adapter)
121
- .to receive(:watch_dir)
122
- .with("/home/bobby", "backup-lab")
121
+ .to receive(:spawn)
122
+ .with(LearnOpen::FileBackupStarter::BACKUP_LAB_PROCESS)
123
123
  expect(system_adapter)
124
124
  .to receive(:open_login_shell)
125
125
  .with("/usr/local/fish")
@@ -83,8 +83,8 @@ describe LearnOpen::Environments::JupyterContainerEnvironment do
83
83
  .to receive(:spawn)
84
84
  .with("restore-lab", {:block=>true})
85
85
  expect(system_adapter)
86
- .to receive(:watch_dir)
87
- .with("/home/bobby", "backup-lab")
86
+ .to receive(:spawn)
87
+ .with(LearnOpen::FileBackupStarter::BACKUP_LAB_PROCESS)
88
88
  expect(system_adapter)
89
89
  .to receive(:open_login_shell)
90
90
  .with("/usr/local/fish")
@@ -119,8 +119,8 @@ describe LearnOpen::Opener do
119
119
  .to receive(:spawn)
120
120
  .with('restore-lab', block: true)
121
121
  expect(system_adapter)
122
- .to receive(:watch_dir)
123
- .with("/home/bobby/Development/code/ruby_lab", "backup-lab")
122
+ .to receive(:spawn)
123
+ .with(LearnOpen::FileBackupStarter::BACKUP_LAB_PROCESS)
124
124
  expect(system_adapter)
125
125
  .to receive(:run_command)
126
126
  .with("bundle install")
@@ -142,7 +142,7 @@ describe LearnOpen::Opener do
142
142
  "IDE_CONTAINER" => "true",
143
143
  "IDE_VERSION" => "3"
144
144
  }
145
- allow(system_adapter).to receive_messages([:spawn, :watch_dir])
145
+ allow(system_adapter).to receive_messages([:spawn, :spawn])
146
146
 
147
147
  home_dir = create_linux_home_dir("bobby")
148
148
  opener = LearnOpen::Opener.new(nil, "atom", true, false,
@@ -156,72 +156,6 @@ describe LearnOpen::Opener do
156
156
  expect(File.exist?("#{home_dir}/.custom_commands.log")).to eq(false)
157
157
  end
158
158
 
159
- it "does not prompt if they want to skip lesson if the container is for a different lab" do
160
- environment = {
161
- "SHELL" => "/usr/local/bin/fish",
162
- "LAB_NAME" => "Something wild",
163
- "CREATED_USER" => "bobby",
164
- "IDE_CONTAINER" => "true",
165
- "IDE_VERSION" => "3"
166
- }
167
- io = instance_double(LearnOpen::Adapters::IOAdapter)
168
- expect(io)
169
- .to receive(:puts)
170
- .with("Looking for lesson...")
171
-
172
- expect(io)
173
- .to receive(:puts)
174
- .with("Opening new window")
175
-
176
- create_linux_home_dir("bobby")
177
- opener = LearnOpen::Opener.new("later_lesson", "atom", true, false,
178
- learn_web_client: learn_web_client,
179
- git_adapter: git_adapter,
180
- environment_vars: environment,
181
- system_adapter: system_adapter,
182
- git_ssh_connector: git_ssh_connector,
183
- io: io)
184
- opener.run
185
- end
186
- it "prompts if they want to skip lesson" do
187
- environment = {
188
- "SHELL" => "/usr/local/bin/fish",
189
- "LAB_NAME" => "later_lesson",
190
- "CREATED_USER" => "bobby",
191
- "IDE_CONTAINER" => "true",
192
- "IDE_VERSION" => "3"
193
- }
194
- io = instance_double(LearnOpen::Adapters::IOAdapter)
195
- expect(io)
196
- .to receive(:puts)
197
- .with("Looking for lesson...")
198
-
199
- expect(io)
200
- .to receive(:puts)
201
- .with("WARNING: You are attempting to open a lesson that is beyond your current lesson.")
202
-
203
- expect(io)
204
- .to receive(:print)
205
- .with("Are you sure you want to continue? [Y/n]: ")
206
-
207
- expect(io)
208
- .to receive(:gets)
209
- .and_return("yes")
210
-
211
- expect(io)
212
- .to receive(:puts)
213
- .with("Opening readme...")
214
-
215
- create_linux_home_dir("bobby")
216
- opener = LearnOpen::Opener.new("later_lesson", "atom", true, false,
217
- learn_web_client: learn_web_client,
218
- git_adapter: git_adapter,
219
- environment_vars: environment,
220
- system_adapter: system_adapter,
221
- git_ssh_connector: git_ssh_connector,
222
- io: io)
223
- opener.run
224
- end
225
159
  it "writes to custom_commands_log if lab name doesn't match env" do
226
160
  environment = {
227
161
  "SHELL" => "/usr/local/bin/fish",
@@ -230,7 +164,7 @@ describe LearnOpen::Opener do
230
164
  "IDE_CONTAINER" => "true",
231
165
  "IDE_VERSION" => "3"
232
166
  }
233
- allow(system_adapter).to receive_messages([:spawn, :watch_dir])
167
+ allow(system_adapter).to receive_messages([:spawn, :spawn])
234
168
 
235
169
  home_dir = create_linux_home_dir("bobby")
236
170
  opener = LearnOpen::Opener.new(nil, "atom", true, false,
@@ -251,7 +185,7 @@ describe LearnOpen::Opener do
251
185
  "LAB_NAME" => "Something wild",
252
186
  "CREATED_USER" => "bobby"
253
187
  }
254
- allow(system_adapter).to receive_messages([:spawn, :watch_dir])
188
+ allow(system_adapter).to receive_messages([:spawn, :spawn])
255
189
 
256
190
  home_dir = create_linux_home_dir("bobby")
257
191
  opener = LearnOpen::Opener.new(nil, "atom", true, false,
@@ -272,7 +206,7 @@ describe LearnOpen::Opener do
272
206
  "CREATED_USER" => "bobby",
273
207
  "IDE_CONTAINER" => "true",
274
208
  }
275
- allow(system_adapter).to receive_messages([:spawn, :watch_dir])
209
+ allow(system_adapter).to receive_messages([:spawn, :spawn])
276
210
  expect(system_adapter)
277
211
  .to receive(:open_editor)
278
212
  .with("atom", path: ".")
@@ -309,7 +243,7 @@ describe LearnOpen::Opener do
309
243
  allow(system_adapter).to receive_messages(
310
244
  open_editor: :noop,
311
245
  spawn: :noop,
312
- watch_dir: :noop,
246
+ spawn: :noop,
313
247
  open_login_shell: :noop,
314
248
  change_context_directory: :noop,
315
249
  run_command: :noop,
@@ -339,7 +273,7 @@ Failed to obtain an SSH connection!
339
273
  allow(system_adapter).to receive_messages(
340
274
  open_editor: :noop,
341
275
  spawn: :noop,
342
- watch_dir: :noop,
276
+ spawn: :noop,
343
277
  open_login_shell: :noop,
344
278
  change_context_directory: :noop,
345
279
  run_command: :noop,
@@ -373,7 +307,7 @@ Done.
373
307
  allow(system_adapter).to receive_messages(
374
308
  open_editor: :noop,
375
309
  spawn: :noop,
376
- watch_dir: :noop,
310
+ spawn: :noop,
377
311
  open_login_shell: :noop,
378
312
  change_context_directory: :noop,
379
313
  run_command: :noop,
@@ -408,8 +342,8 @@ Done.
408
342
  .to receive(:spawn)
409
343
  .with("restore-lab", block: true)
410
344
  expect(system_adapter)
411
- .to receive(:watch_dir)
412
- .with("/home/bobby/Development/code/jupyter_lab", "backup-lab")
345
+ .to receive(:spawn)
346
+ .with(LearnOpen::FileBackupStarter::BACKUP_LAB_PROCESS)
413
347
  expect(system_adapter)
414
348
  .to receive(:open_login_shell)
415
349
  .with("/usr/local/bin/fish")
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.2.26
4
+ version: 1.2.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flatiron School
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-22 00:00:00.000000000 Z
11
+ date: 2019-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler