Class: LearnOpen::Environments::IDEEnvironment
Instance Attribute Summary
#environment_vars, #io, #logger, #options, #system_adapter
Instance Method Summary
collapse
#download_lesson, #initialize, #install_dependencies, #notify_of_completion, #open_editor, #open_shell, #start_file_backup
Instance Method Details
#managed? ⇒ Boolean
4
5
6
|
# File 'lib/learn_open/environments/ide_environment.rb', line 4
def managed?
true
end
|
#on_invalid(lesson) ⇒ Object
50
51
52
53
|
# File 'lib/learn_open/environments/ide_environment.rb', line 50
def on_invalid(lesson)
io.puts "Opening new window"
run_custom_command(:open_lab, {lab_name: lesson.name})
end
|
#open_jupyter_lab(lesson, location, editor, _clone_only) ⇒ Object
15
16
17
18
19
20
|
# File 'lib/learn_open/environments/ide_environment.rb', line 15
def open_jupyter_lab(lesson, location, editor, _clone_only)
when_valid(lesson) do
io.puts "Opening Jupyter Lesson..."
run_custom_command(:browser_open, {url: lesson.to_url})
end
end
|
#open_lab(lesson, location, editor, clone_only) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/learn_open/environments/ide_environment.rb', line 22
def open_lab(lesson, location, editor, clone_only)
when_valid(lesson) do
case lesson
when LearnOpen::Lessons::IosLesson
super
when -> (l) { valid?(l) }
download_lesson(lesson, location)
open_editor(lesson, location, editor)
start_file_backup(lesson, location)
install_dependencies(lesson, location)
notify_of_completion
open_shell unless clone_only
end
end
end
|
#open_readme(lesson) ⇒ Object
8
9
10
11
12
13
|
# File 'lib/learn_open/environments/ide_environment.rb', line 8
def open_readme(lesson)
when_valid(lesson) do
io.puts "Opening readme..."
run_custom_command(:browser_open, {url: lesson.to_url})
end
end
|
#run_custom_command(command, message) ⇒ Object
55
56
57
58
59
60
61
|
# File 'lib/learn_open/environments/ide_environment.rb', line 55
def run_custom_command(command, message)
home_dir = "/home/#{environment_vars['CREATED_USER']}"
custom_commands_log = "#{home_dir}/.custom_commands.log"
File.open(custom_commands_log, "a") do |f|
f.puts({:command => command}.merge(message).to_json)
end
end
|
#valid?(lesson) ⇒ Boolean
46
47
48
|
# File 'lib/learn_open/environments/ide_environment.rb', line 46
def valid?(lesson)
lesson.name == environment_vars['LAB_NAME']
end
|
#when_valid(lesson, &block) ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/learn_open/environments/ide_environment.rb', line 38
def when_valid(lesson, &block)
if valid?(lesson)
block.call
else
on_invalid(lesson)
end
end
|