Class: Exercism::CLI
- Inherits:
-
Thor
- Object
- Thor
- Exercism::CLI
show all
- Defined in:
- lib/cli.rb,
lib/cli/monitored_request.rb
Defined Under Namespace
Classes: MonitoredRequest
Instance Method Summary
collapse
Instance Method Details
#demo ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/cli.rb', line 18
def demo
require 'exercism'
guest = Object.new
def guest.key
"demo"
end
exercism = Exercism::Api.new(options[:host], guest, '.')
assignments = exercism.demo
report(assignments)
end
|
#fetch ⇒ Object
33
34
35
36
37
38
|
# File 'lib/cli.rb', line 33
def fetch
require 'exercism'
assignments = api.fetch
report(assignments)
end
|
#login ⇒ Object
99
100
101
102
103
104
105
|
# File 'lib/cli.rb', line 99
def login
require 'exercism'
Exercism.login username, key, project_dir
say("Your credentials have been written to #{Exercism.config.file}")
end
|
#logout ⇒ Object
108
109
110
111
112
|
# File 'lib/cli.rb', line 108
def logout
require 'exercism'
Exercism.config.delete
end
|
#open ⇒ Object
41
42
43
44
45
|
# File 'lib/cli.rb', line 41
def open
require 'launchy'
Launchy.open("http://exercism.io")
end
|
#peek ⇒ Object
49
50
51
52
53
54
|
# File 'lib/cli.rb', line 49
def peek
require 'exercism'
assignments = api.peek
report(assignments)
end
|
#submit(file) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/cli.rb', line 59
def submit(file)
require 'exercism'
require 'cli/monitored_request'
submission = Submission.new(file)
if submission.test?
say "It looks like this is a test, you probably don't want to do that."
if no?("Do you want to submit it anyway? [y/n]")
return
end
end
if options[:ask]
if no?("Are you sure you want to submit this assignment? [y/n]")
return
end
end
MonitoredRequest.new(api).request :submit, submission.path do |request, body|
say "Your assignment has been submitted."
url = "#{options[:host]}/#{Exercism.user.github_username}/#{body['language']}/#{body['exercise']}"
say "For feedback on your submission visit #{url}"
end
end
|
#unsubmit ⇒ Object
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/cli.rb', line 87
def unsubmit
require 'exercism'
require 'cli/monitored_request'
MonitoredRequest.new(api).request :unsubmit do |request, body|
if response.status == 204
say "The last submission was successfully deleted."
end
end
end
|
#version ⇒ Object
8
9
10
11
12
|
# File 'lib/cli.rb', line 8
def version
require 'exercism'
puts Exercism::VERSION
end
|
#whoami ⇒ Object
115
116
117
118
119
120
121
|
# File 'lib/cli.rb', line 115
def whoami
require 'exercism'
puts Exercism.user.github_username
rescue Errno::ENOENT
puts "You are not logged in."
end
|