learn-co 2.1.12 → 2.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/bin/learn +10 -2
- data/learn-co.gemspec +5 -4
- data/lib/learn.rb +1 -0
- data/lib/learn/cli.rb +5 -0
- data/lib/learn/internet_connection.rb +53 -0
- data/lib/learn/options_sanitizer.rb +2 -1
- data/lib/learn/version.rb +1 -1
- metadata +25 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bed0cb072d84e0cfc9eb37353b5647ddf9f5047
|
4
|
+
data.tar.gz: 123a5ca41f0a0a3dcf5299706eff4eec9c733aaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18335aa82a63b7ec7d819f7740cae992237ccbfe5c21f234267e199bfcd8b135d5091ab6bd44bb7ecb9b1e75dd4e67564bbce121fbb57af0393d69bcc5034864
|
7
|
+
data.tar.gz: 008f741d41824df09d8f92ef188d4f4fe350edee8bbfe3e329d16e520bd6694c998b96155b461e0d14871e5f4e31536cc824b16081e58d8ee6b416fdda7935c4
|
data/bin/learn
CHANGED
@@ -3,7 +3,11 @@
|
|
3
3
|
require 'learn'
|
4
4
|
|
5
5
|
NON_PRE_CONFIG_COMMANDS = [
|
6
|
-
'reset', 'whoami', 'directory', 'help', 'version', '--version', '-v'
|
6
|
+
'reset', 'whoami', 'directory', 'help', 'version', '--version', '-v', 'doctor'
|
7
|
+
]
|
8
|
+
|
9
|
+
INTERNET_REQUIRED_COMMANDS = [
|
10
|
+
'whoami', 'doctor', 'directory', 'reset'
|
7
11
|
]
|
8
12
|
|
9
13
|
if ['-v', '--version'].include?(ARGV.first)
|
@@ -14,7 +18,11 @@ end
|
|
14
18
|
Learn::OptionsSanitizer.new(ARGV).sanitize!
|
15
19
|
|
16
20
|
if !(NON_PRE_CONFIG_COMMANDS.include?(ARGV[0]))
|
17
|
-
system('learn-config')
|
21
|
+
system('learn-config') unless Learn::InternetConnection.no_internet_connection?
|
22
|
+
end
|
23
|
+
|
24
|
+
if INTERNET_REQUIRED_COMMANDS.include?(ARGV[0])
|
25
|
+
Learn::InternetConnection.test_connection
|
18
26
|
end
|
19
27
|
|
20
28
|
Learn::CLI.start(ARGV)
|
data/learn-co.gemspec
CHANGED
@@ -21,9 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "rake", "~> 10.0"
|
22
22
|
spec.add_development_dependency "pry"
|
23
23
|
|
24
|
-
spec.add_runtime_dependency "learn-test", ">= 1.2.
|
25
|
-
spec.add_runtime_dependency "learn-config", ">= 1.0.
|
26
|
-
spec.add_runtime_dependency "learn-open", ">= 1.1.
|
27
|
-
spec.add_runtime_dependency "learn-submit", ">= 1.0.
|
24
|
+
spec.add_runtime_dependency "learn-test", ">= 1.2.22"
|
25
|
+
spec.add_runtime_dependency "learn-config", ">= 1.0.73"
|
26
|
+
spec.add_runtime_dependency "learn-open", ">= 1.1.51"
|
27
|
+
spec.add_runtime_dependency "learn-submit", ">= 1.0.12"
|
28
|
+
spec.add_runtime_dependency "learn-doctor", ">= 1.0.2"
|
28
29
|
spec.add_runtime_dependency "thor"
|
29
30
|
end
|
data/lib/learn.rb
CHANGED
data/lib/learn/cli.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'timeout'
|
3
|
+
|
4
|
+
module Learn
|
5
|
+
class InternetConnection
|
6
|
+
attr_accessor :connection
|
7
|
+
|
8
|
+
STATUS_URI = URI('https://learn.co/p/gem_status')
|
9
|
+
SUCCESS_STATUS = 'this is a boring message to prove you can connect to the internet'
|
10
|
+
NO_INTERNET_MESSAGE = "It seems like you aren't connected to the internet. All features of the Learn gem may not work properly. Trying anyway..."
|
11
|
+
|
12
|
+
def self.no_internet_connection?
|
13
|
+
new.no_connection?
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.test_connection
|
17
|
+
new
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@connection = false
|
22
|
+
|
23
|
+
test_connection
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_connection
|
27
|
+
begin
|
28
|
+
Timeout::timeout(5) do
|
29
|
+
resp = Net::HTTP.get(STATUS_URI)
|
30
|
+
|
31
|
+
if resp.match(/#{SUCCESS_STATUS}/)
|
32
|
+
self.connection = true
|
33
|
+
else
|
34
|
+
self.connection = false
|
35
|
+
puts NO_INTERNET_MESSAGE
|
36
|
+
end
|
37
|
+
end
|
38
|
+
rescue Timeout::Error
|
39
|
+
self.connection = false
|
40
|
+
puts NO_INTERNET_MESSAGE
|
41
|
+
rescue SocketError => e
|
42
|
+
if e.message.match(/getaddrinfo: nodename nor servname provided/)
|
43
|
+
self.connection = false
|
44
|
+
puts NO_INTERNET_MESSAGE
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def no_connection?
|
50
|
+
!connection
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/learn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: learn-co
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.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: 2015-06-
|
11
|
+
date: 2015-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,56 +58,70 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.2.
|
61
|
+
version: 1.2.22
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.2.
|
68
|
+
version: 1.2.22
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: learn-config
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.0.
|
75
|
+
version: 1.0.73
|
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.0.
|
82
|
+
version: 1.0.73
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: learn-open
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.1.
|
89
|
+
version: 1.1.51
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.1.
|
96
|
+
version: 1.1.51
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: learn-submit
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.0.
|
103
|
+
version: 1.0.12
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.0.
|
110
|
+
version: 1.0.12
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: learn-doctor
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.0.2
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.0.2
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: thor
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,6 +153,7 @@ files:
|
|
139
153
|
- learn-co.gemspec
|
140
154
|
- lib/learn.rb
|
141
155
|
- lib/learn/cli.rb
|
156
|
+
- lib/learn/internet_connection.rb
|
142
157
|
- lib/learn/lab/parser.rb
|
143
158
|
- lib/learn/options_sanitizer.rb
|
144
159
|
- lib/learn/version.rb
|