learnsprout 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/README.md +4 -0
- data/features/courses.feature +52 -0
- data/features/orgs.feature +13 -0
- data/features/schools.feature +25 -0
- data/features/sections.feature +44 -0
- data/features/step_definitions/client_steps.rb +268 -0
- data/features/students.feature +44 -0
- data/features/teachers.feature +44 -0
- data/features/term.feature +56 -0
- data/learnsprout.gemspec +28 -0
- data/lib/learnsprout/address.rb +16 -0
- data/lib/learnsprout/client.rb +209 -0
- data/lib/learnsprout/connection.rb +45 -0
- data/lib/learnsprout/course.rb +25 -0
- data/lib/learnsprout/exceptions.rb +5 -0
- data/lib/learnsprout/nces.rb +12 -0
- data/lib/learnsprout/org.rb +62 -0
- data/lib/learnsprout/phone.rb +12 -0
- data/lib/learnsprout/response/follow_redirects.rb +44 -0
- data/lib/learnsprout/response/parse_json.rb +22 -0
- data/lib/learnsprout/school.rb +69 -0
- data/lib/learnsprout/section.rb +18 -0
- data/lib/learnsprout/student.rb +16 -0
- data/lib/learnsprout/teacher.rb +30 -0
- data/lib/learnsprout/term.rb +22 -0
- data/lib/learnsprout/version.rb +4 -0
- data/lib/learnsprout.rb +48 -0
- metadata +196 -0
@@ -0,0 +1,209 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Client
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
def initialize(api_key)
|
6
|
+
@api_key = api_key
|
7
|
+
end
|
8
|
+
|
9
|
+
def org(org_id)
|
10
|
+
org = get("org/#{org_id}?apikey=#{@api_key}")
|
11
|
+
org["client"] = self
|
12
|
+
Org.new(org)
|
13
|
+
end
|
14
|
+
|
15
|
+
def orgs
|
16
|
+
orgs = get("org?apikey=#{@api_key}")
|
17
|
+
instances_from_orgs(orgs)
|
18
|
+
end
|
19
|
+
|
20
|
+
def school(org_id, school_id)
|
21
|
+
school = get("org/#{org_id}/school/#{school_id}?apikey=#{@api_key}")
|
22
|
+
school["org_id"] = org_id
|
23
|
+
school["client"] = self
|
24
|
+
School.new(school)
|
25
|
+
end
|
26
|
+
|
27
|
+
def schools(org_id)
|
28
|
+
schools = get("org/#{org_id}/school?apikey=#{@api_key}")
|
29
|
+
instances_from_schools(org_id, schools)
|
30
|
+
end
|
31
|
+
|
32
|
+
def student(org_id, student_id)
|
33
|
+
student = get("org/#{org_id}/student/#{student_id}?apikey=#{@api_key}")
|
34
|
+
student["org_id"] = org_id
|
35
|
+
student["client"] = self
|
36
|
+
Student.new(student)
|
37
|
+
end
|
38
|
+
|
39
|
+
def students(org_id, options = {})
|
40
|
+
school_id = options[:school_id]
|
41
|
+
if (school_id)
|
42
|
+
students = get("org/#{org_id}/school/#{school_id}/student?apikey=#{@api_key}")
|
43
|
+
else
|
44
|
+
students = get("org/#{org_id}/student?apikey=#{@api_key}")
|
45
|
+
end
|
46
|
+
instances_from_students(org_id, students)
|
47
|
+
end
|
48
|
+
|
49
|
+
def section(org_id, section_id)
|
50
|
+
url = "org/#{org_id}/section/#{section_id}?apikey=#{@api_key}"
|
51
|
+
section = get(url)
|
52
|
+
section["org_id"] = org_id
|
53
|
+
section["client"] = self
|
54
|
+
Section.new(section)
|
55
|
+
end
|
56
|
+
|
57
|
+
def sections(org_id, options = {})
|
58
|
+
school_id = options[:school_id]
|
59
|
+
if (school_id)
|
60
|
+
url = "org/#{org_id}/school/#{school_id}/section?apikey=#{@api_key}"
|
61
|
+
else
|
62
|
+
url = "org/#{org_id}/section?apikey=#{@api_key}"
|
63
|
+
end
|
64
|
+
sections = get(url)
|
65
|
+
instances_from_sections(org_id, sections)
|
66
|
+
end
|
67
|
+
|
68
|
+
def teacher(org_id, teacher_id)
|
69
|
+
url = "org/#{org_id}/teacher/#{teacher_id}?apikey=#{@api_key}"
|
70
|
+
teacher = get(url)
|
71
|
+
teacher["org_id"] = org_id
|
72
|
+
teacher["client"] = self
|
73
|
+
Teacher.new(teacher)
|
74
|
+
end
|
75
|
+
|
76
|
+
def teachers(org_id, options = {})
|
77
|
+
school_id = options[:school_id]
|
78
|
+
if (school_id)
|
79
|
+
url = "org/#{org_id}/school/#{school_id}/teacher?apikey=#{@api_key}"
|
80
|
+
else
|
81
|
+
url = "org/#{org_id}/teacher?apikey=#{@api_key}"
|
82
|
+
end
|
83
|
+
teachers = get(url)
|
84
|
+
instances_from_teachers(org_id, teachers)
|
85
|
+
end
|
86
|
+
|
87
|
+
def term(org_id, term_id)
|
88
|
+
url = "org/#{org_id}/term/#{term_id}?apikey=#{@api_key}"
|
89
|
+
term = get(url)
|
90
|
+
term["org_id"] = org_id
|
91
|
+
term["client"] = self
|
92
|
+
Term.new(term)
|
93
|
+
end
|
94
|
+
|
95
|
+
def terms(org_id, options = {})
|
96
|
+
school_id = options[:school_id]
|
97
|
+
if (school_id)
|
98
|
+
url = "org/#{org_id}/school/#{school_id}/term?apikey=#{@api_key}"
|
99
|
+
else
|
100
|
+
url = "org/#{org_id}/term?apikey=#{@api_key}"
|
101
|
+
end
|
102
|
+
terms = get(url)
|
103
|
+
instances_from_terms(org_id, terms)
|
104
|
+
end
|
105
|
+
|
106
|
+
def current_term(org_id, school_id)
|
107
|
+
url = "org/#{org_id}/school/#{school_id}/term/current?apikey=#{@api_key}"
|
108
|
+
term = get(url)
|
109
|
+
term["org_id"] = org_id
|
110
|
+
term["client"] = self
|
111
|
+
Term.new(term)
|
112
|
+
end
|
113
|
+
|
114
|
+
def course(org_id, course_id)
|
115
|
+
url = "org/#{org_id}/course/#{course_id}?apikey=#{@api_key}"
|
116
|
+
course = get(url)
|
117
|
+
course["org_id"] = org_id
|
118
|
+
course["client"] = self
|
119
|
+
Course.new(course)
|
120
|
+
end
|
121
|
+
|
122
|
+
def courses(org_id, options = {})
|
123
|
+
school_id = options[:school_id]
|
124
|
+
if (school_id)
|
125
|
+
url = "org/#{org_id}/school/#{school_id}/course?apikey=#{@api_key}"
|
126
|
+
else
|
127
|
+
url = "org/#{org_id}/course?apikey=#{@api_key}"
|
128
|
+
end
|
129
|
+
courses = get(url)
|
130
|
+
instances_from_courses(org_id, courses)
|
131
|
+
end
|
132
|
+
|
133
|
+
private
|
134
|
+
def instances_from_orgs(orgs)
|
135
|
+
org_instances = []
|
136
|
+
orgs.each do |org|
|
137
|
+
org["client"] = self
|
138
|
+
org_instances << Org.new(org)
|
139
|
+
end
|
140
|
+
return org_instances
|
141
|
+
end
|
142
|
+
|
143
|
+
def instances_from_schools(org_id, schools)
|
144
|
+
school_instances = []
|
145
|
+
#TODO Next
|
146
|
+
schools["data"].each do |school|
|
147
|
+
school["client"] = self
|
148
|
+
school["org_id"] = org_id
|
149
|
+
school_instances << School.new(school)
|
150
|
+
end
|
151
|
+
return school_instances
|
152
|
+
end
|
153
|
+
|
154
|
+
def instances_from_students(org_id, students)
|
155
|
+
student_instances = []
|
156
|
+
#TODO Next
|
157
|
+
students["data"].each do |student|
|
158
|
+
student["client"] = self
|
159
|
+
student["org_id"] = org_id
|
160
|
+
student_instances << Student.new(student)
|
161
|
+
end
|
162
|
+
return student_instances
|
163
|
+
end
|
164
|
+
|
165
|
+
def instances_from_sections(org_id, sections)
|
166
|
+
section_instances = []
|
167
|
+
#TODO Next
|
168
|
+
sections["data"].each do |section|
|
169
|
+
section["client"] = self
|
170
|
+
section["org_id"] = org_id
|
171
|
+
section_instances << Section.new(section)
|
172
|
+
end
|
173
|
+
return section_instances
|
174
|
+
end
|
175
|
+
|
176
|
+
def instances_from_teachers(org_id, teachers)
|
177
|
+
teacher_instances = []
|
178
|
+
#TODO Next
|
179
|
+
teachers["data"].each do |teacher|
|
180
|
+
teacher["client"] = self
|
181
|
+
teacher["org_id"] = org_id
|
182
|
+
teacher_instances << Teacher.new(teacher)
|
183
|
+
end
|
184
|
+
return teacher_instances
|
185
|
+
end
|
186
|
+
|
187
|
+
def instances_from_terms(org_id, terms)
|
188
|
+
term_instances = []
|
189
|
+
#TODO Next
|
190
|
+
terms["data"].each do |term|
|
191
|
+
term["client"] = self
|
192
|
+
term["org_id"] = org_id
|
193
|
+
term_instances << Term.new(term)
|
194
|
+
end
|
195
|
+
return term_instances
|
196
|
+
end
|
197
|
+
|
198
|
+
def instances_from_courses(org_id, courses)
|
199
|
+
course_instances = []
|
200
|
+
#TODO Next
|
201
|
+
courses["data"].each do |course|
|
202
|
+
course["client"] = self
|
203
|
+
course["org_id"] = org_id
|
204
|
+
course_instances << Course.new(course)
|
205
|
+
end
|
206
|
+
return course_instances
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
module Connection
|
3
|
+
private
|
4
|
+
def connection
|
5
|
+
default_options = {
|
6
|
+
:headers => {
|
7
|
+
:accept => 'application/json',
|
8
|
+
:content_type => 'application/json',
|
9
|
+
:user_agent => LearnSprout.user_agent,
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
@connection ||= Faraday.new(LearnSprout.endpoint, default_options) do |builder|
|
14
|
+
builder.use LearnSprout::Response::FollowRedirects
|
15
|
+
builder.use LearnSprout::Response::ParseJson
|
16
|
+
|
17
|
+
builder.use Faraday::Request::UrlEncoded
|
18
|
+
|
19
|
+
builder.response :logger if LearnSprout.debugging?
|
20
|
+
builder.adapter Faraday.default_adapter
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def get(path, params={})
|
25
|
+
request(:get, path, params)
|
26
|
+
end
|
27
|
+
|
28
|
+
def post(path, params={})
|
29
|
+
request(:post, path, params)
|
30
|
+
end
|
31
|
+
|
32
|
+
def request(method, path, params)
|
33
|
+
response = connection.send(method) do |request|
|
34
|
+
case method.to_sym
|
35
|
+
when :delete, :get
|
36
|
+
request.url(path)
|
37
|
+
when :post
|
38
|
+
request.path = path
|
39
|
+
request.body = MultiJson.encode(params) unless params.empty?
|
40
|
+
end
|
41
|
+
end
|
42
|
+
response.body
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Course
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :course_id,
|
6
|
+
:school_id,
|
7
|
+
:name,
|
8
|
+
:number,
|
9
|
+
:time_updated
|
10
|
+
|
11
|
+
def initialize(attrs={})
|
12
|
+
@client = attrs["client"]
|
13
|
+
@org_id = attrs["org_id"]
|
14
|
+
@course_id = attrs["id"]
|
15
|
+
@name = attrs["name"]
|
16
|
+
@number = attrs["number"]
|
17
|
+
@time_updated = attrs["time_updated"]
|
18
|
+
@school_id = attrs["school"]["id"]
|
19
|
+
end
|
20
|
+
|
21
|
+
def school
|
22
|
+
@client.school(@org_id, @school_id)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Org
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :org_id,
|
6
|
+
:name
|
7
|
+
|
8
|
+
def initialize(attrs={})
|
9
|
+
@client = attrs["client"]
|
10
|
+
@org_id = attrs["id"]
|
11
|
+
@name = attrs["name"]
|
12
|
+
end
|
13
|
+
|
14
|
+
def school(school_id)
|
15
|
+
@client.school(@org_id, school_id)
|
16
|
+
end
|
17
|
+
|
18
|
+
def schools
|
19
|
+
@client.schools(@org_id)
|
20
|
+
end
|
21
|
+
|
22
|
+
def students
|
23
|
+
@client.students(@org_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
def student(student_id)
|
27
|
+
@client.student(@org_id, student_id)
|
28
|
+
end
|
29
|
+
|
30
|
+
def sections
|
31
|
+
@client.sections(@org_id)
|
32
|
+
end
|
33
|
+
|
34
|
+
def section(section_id)
|
35
|
+
@client.section(@org_id, section_id)
|
36
|
+
end
|
37
|
+
|
38
|
+
def teachers
|
39
|
+
@client.teachers(@org_id)
|
40
|
+
end
|
41
|
+
|
42
|
+
def teacher(teacher_id)
|
43
|
+
@client.teacher(@org_id, teacher_id)
|
44
|
+
end
|
45
|
+
|
46
|
+
def terms
|
47
|
+
@client.terms(@org_id)
|
48
|
+
end
|
49
|
+
|
50
|
+
def term(term_id)
|
51
|
+
@client.term(@org_id, term_id)
|
52
|
+
end
|
53
|
+
|
54
|
+
def courses
|
55
|
+
@client.courses(@org_id)
|
56
|
+
end
|
57
|
+
|
58
|
+
def course(course_id)
|
59
|
+
@client.course(@org_id, course_id)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
module Response
|
3
|
+
class RedirectLimitReached < Faraday::Error::ClientError
|
4
|
+
attr_reader :response
|
5
|
+
|
6
|
+
def initialize(response)
|
7
|
+
super "too many redirects; last one to: #{response['location']}"
|
8
|
+
@response = response
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class FollowRedirects < Faraday::Middleware
|
13
|
+
REDIRECTS = [301, 302, 303, 307]
|
14
|
+
# default value for max redirects followed
|
15
|
+
FOLLOW_LIMIT = 3
|
16
|
+
|
17
|
+
def initialize(app, options = {})
|
18
|
+
super(app)
|
19
|
+
@options = options
|
20
|
+
@follow_limit = options[:limit] || FOLLOW_LIMIT
|
21
|
+
end
|
22
|
+
|
23
|
+
def call(env)
|
24
|
+
process_response(@app.call(env), @follow_limit)
|
25
|
+
end
|
26
|
+
|
27
|
+
def process_response(response, follows)
|
28
|
+
response.on_complete do |env|
|
29
|
+
if redirect? response
|
30
|
+
raise RedirectLimitReached, response if follows.zero?
|
31
|
+
env[:url] += response['location']
|
32
|
+
env[:method] = :get
|
33
|
+
response = process_response(@app.call(env), follows - 1)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
response
|
37
|
+
end
|
38
|
+
|
39
|
+
def redirect?(response)
|
40
|
+
REDIRECTS.include? response.status
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
module Response
|
3
|
+
class ParseJson < Faraday::Response::Middleware
|
4
|
+
def on_complete(env)
|
5
|
+
if respond_to? :parse
|
6
|
+
env[:body] = parse(env[:body]) unless [204,302,304,307].index env[:status]
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def parse(body)
|
11
|
+
case body
|
12
|
+
when ''
|
13
|
+
nil
|
14
|
+
else
|
15
|
+
response_hash = ::MultiJson.decode(body)
|
16
|
+
|
17
|
+
#raise LearnSprout::RequestException, response_hash["message"] if response_hash["message"]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class School
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :school_id,
|
6
|
+
:name,
|
7
|
+
:number,
|
8
|
+
:nces,
|
9
|
+
:phone,
|
10
|
+
:address
|
11
|
+
|
12
|
+
def initialize(attrs={})
|
13
|
+
@client = attrs["client"]
|
14
|
+
@org_id = attrs["org_id"]
|
15
|
+
@school_id = attrs["id"]
|
16
|
+
@name = attrs["name"]
|
17
|
+
@number = attrs["number"]
|
18
|
+
@nces = Nces.new(attrs["nces"])
|
19
|
+
@phone = Phone.new(attrs["phone"])
|
20
|
+
@address = Address.new(attrs["address"])
|
21
|
+
end
|
22
|
+
|
23
|
+
#TODO Add org method?
|
24
|
+
|
25
|
+
def student(student_id)
|
26
|
+
@client.student(@org_id, student_id)
|
27
|
+
end
|
28
|
+
|
29
|
+
def students
|
30
|
+
@client.students(@org_id, :school_id => @school_id)
|
31
|
+
end
|
32
|
+
|
33
|
+
def section(section_id)
|
34
|
+
@client.section(@org_id, section_id)
|
35
|
+
end
|
36
|
+
|
37
|
+
def sections
|
38
|
+
@client.sections(@org_id, :school_id => @school_id)
|
39
|
+
end
|
40
|
+
|
41
|
+
def teacher(teacher_id)
|
42
|
+
@client.teacher(@org_id, teacher_id)
|
43
|
+
end
|
44
|
+
|
45
|
+
def teachers
|
46
|
+
@client.teachers(@org_id, :school_id => @school_id)
|
47
|
+
end
|
48
|
+
|
49
|
+
def term(term_id)
|
50
|
+
@client.term(@org_id, term_id)
|
51
|
+
end
|
52
|
+
|
53
|
+
def terms
|
54
|
+
@client.terms(@org_id, :school_id => @school_id)
|
55
|
+
end
|
56
|
+
|
57
|
+
def current_term
|
58
|
+
@client.current_term(@org_id, @school_id)
|
59
|
+
end
|
60
|
+
|
61
|
+
def course(course_id)
|
62
|
+
@client.course(@org_id, course_id)
|
63
|
+
end
|
64
|
+
|
65
|
+
def courses
|
66
|
+
@client.courses(@org_id, :school_id => @school_id)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Section
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :section_id,
|
6
|
+
:number,
|
7
|
+
:room
|
8
|
+
|
9
|
+
def initialize(attrs={})
|
10
|
+
@client = attrs["client"]
|
11
|
+
@org_id = attrs["org_id"]
|
12
|
+
@section_id = attrs["id"]
|
13
|
+
@number = attrs["number"]
|
14
|
+
@room = attrs["room"]
|
15
|
+
#TODO: Other attrs
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Student
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :student_id,
|
6
|
+
:name
|
7
|
+
|
8
|
+
def initialize(attrs={})
|
9
|
+
@client = attrs["client"]
|
10
|
+
@org_id = attrs["org_id"]
|
11
|
+
@student_id = attrs["id"]
|
12
|
+
@name = attrs["name"]
|
13
|
+
#TODO: Other attrs
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Teacher
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :teacher_id,
|
6
|
+
:first_name,
|
7
|
+
:middle_name,
|
8
|
+
:last_name,
|
9
|
+
:title,
|
10
|
+
:number,
|
11
|
+
:time_updated,
|
12
|
+
:email
|
13
|
+
|
14
|
+
#TODO Other fields
|
15
|
+
|
16
|
+
def initialize(attrs={})
|
17
|
+
@client = attrs["client"]
|
18
|
+
@org_id = attrs["org_id"]
|
19
|
+
@teacher_id = attrs["id"]
|
20
|
+
@first_name = attrs["first_name"]
|
21
|
+
@middle_name = attrs["middle_name"]
|
22
|
+
@last_name = attrs["last_name"]
|
23
|
+
@title = attrs["title"]
|
24
|
+
@number = attrs["number"]
|
25
|
+
@time_updated = attrs["time_updated"]
|
26
|
+
@email = attrs["email"]
|
27
|
+
#TODO: Other attrs
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module LearnSprout
|
2
|
+
class Term
|
3
|
+
include LearnSprout::Connection
|
4
|
+
|
5
|
+
attr_accessor :term_id,
|
6
|
+
:name,
|
7
|
+
:end_date,
|
8
|
+
:start_date
|
9
|
+
|
10
|
+
#TODO Other fields
|
11
|
+
|
12
|
+
def initialize(attrs={})
|
13
|
+
@client = attrs["client"]
|
14
|
+
@org_id = attrs["org_id"]
|
15
|
+
@term_id = attrs["id"]
|
16
|
+
@name = attrs["name"]
|
17
|
+
@end_date = Date.parse(attrs["end_date"])
|
18
|
+
@start_date = Date.parse(attrs["start_date"])
|
19
|
+
#TODO: Other attrs
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/learnsprout.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
module LearnSprout def self.endpoint=(endpoint)
|
2
|
+
@@endpoint = endpoint
|
3
|
+
end
|
4
|
+
|
5
|
+
def self.endpoint
|
6
|
+
@@endpoint
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.user_agent=(user_agent)
|
10
|
+
@@user_agent = user_agent
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.user_agent
|
14
|
+
@@user_agent
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.debugging?
|
18
|
+
!!@@debug
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.debug=(debug)
|
22
|
+
@@debug = debug
|
23
|
+
end
|
24
|
+
|
25
|
+
self.debug = false
|
26
|
+
self.user_agent = "LearnSprout Ruby Wrapper"
|
27
|
+
self.endpoint = "https://beta.api.learnsprout.com/"
|
28
|
+
end
|
29
|
+
|
30
|
+
require 'faraday'
|
31
|
+
require 'multi_json'
|
32
|
+
|
33
|
+
require "learnsprout/exceptions"
|
34
|
+
require "learnsprout/response/parse_json"
|
35
|
+
require "learnsprout/response/follow_redirects"
|
36
|
+
require "learnsprout/connection"
|
37
|
+
require "learnsprout/client"
|
38
|
+
require "learnsprout/org"
|
39
|
+
require "learnsprout/school"
|
40
|
+
require "learnsprout/student"
|
41
|
+
require "learnsprout/section"
|
42
|
+
require "learnsprout/teacher"
|
43
|
+
require "learnsprout/term"
|
44
|
+
require "learnsprout/course"
|
45
|
+
require "learnsprout/nces"
|
46
|
+
require "learnsprout/phone"
|
47
|
+
require "learnsprout/address"
|
48
|
+
require "learnsprout/version"
|