learnsprout 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- learnsprout
2
- ===========
3
-
4
- A Ruby wrapper for the LearnSprout API
1
+ # LearnSprout Ruby Gem
2
+
3
+ A Ruby wrapper for the [LearnSprout API](http://developers.learnsprout.com/interactive)
4
+
5
+ ## Getting Started
6
+
7
+ $ gem install learnsprout
@@ -42,3 +42,38 @@ Feature: Get Sections
42
42
  * I request an org with id 4fdaeaa92eea44952ab9e520
43
43
  * When I request a section with id 4fdb1f6691e4e649b7000000 for that org
44
44
  * I should get a section with id 4fdb1f6691e4e649b7000000
45
+
46
+ Scenario: Term for section
47
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
48
+ * I request an org with id 4fdaeaa92eea44952ab9e520
49
+ * I request a section with id 4fdb1f6691e4e649b7000000 for that org
50
+ * When I request the term for that section
51
+ * I should get a term with id 4fdb21cb91e4e64a0600000b
52
+
53
+ Scenario: Teacher for section
54
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
55
+ * I request an org with id 4fdaeaa92eea44952ab9e520
56
+ * I request a section with id 4fdb1f6691e4e649b7000000 for that org
57
+ * When I request the teacher for that section
58
+ * I should get a teacher with id 4fdb1ffaaa411b22c9a49e10
59
+
60
+ Scenario: School for section
61
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
62
+ * I request an org with id 4fdaeaa92eea44952ab9e520
63
+ * I request a section with id 4fdb1f6691e4e649b7000000 for that org
64
+ * When I request the school for that section
65
+ * I should get a school with id 4fdac86faa411b22c9a3fd2f
66
+
67
+ Scenario: Course for section
68
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
69
+ * I request an org with id 4fdaeaa92eea44952ab9e520
70
+ * I request a section with id 4fdb1f6691e4e649b7000000 for that org
71
+ * When I request the course for that section
72
+ * I should get a course with id 4fdac84faa411b22c9a3fd1b
73
+
74
+ Scenario: Students for section
75
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
76
+ * I request an org with id 4fdaeaa92eea44952ab9e520
77
+ * I request a section with id 4fdb1f6691e4e649b7000000 for that org
78
+ * When I request the students for that section
79
+ * I should get a list of 21 students
@@ -135,6 +135,26 @@ Given /^(?:When )?I request a section with id ([a-f0-9]{24}) for that org$/ do |
135
135
  @section = @org.section(section_id)
136
136
  end
137
137
 
138
+ Given /^(?:When )?I request the term for that section$/ do
139
+ @term = @section.term
140
+ end
141
+
142
+ Given /^(?:When )?I request the students for that section$/ do
143
+ @students = @section.students
144
+ end
145
+
146
+ Given /^(?:When )?I request the teacher for that section$/ do
147
+ @teacher = @section.teacher
148
+ end
149
+
150
+ Given /^(?:When )?I request the school for that section$/ do
151
+ @school = @section.school
152
+ end
153
+
154
+ Given /^(?:When )?I request the course for that section$/ do
155
+ @course = @section.course
156
+ end
157
+
138
158
  # Teachers
139
159
 
140
160
  Given /^When I request teachers for an organization with id ([a-f0-9]{24})$/ do |org_id|
@@ -173,6 +193,10 @@ Given /^(?:When )?I request a teacher with id ([a-f0-9]{24}) for that org$/ do |
173
193
  @teacher = @org.teacher(teacher_id)
174
194
  end
175
195
 
196
+ Given /^(?:When )?I request the school for that teacher$/ do
197
+ @school = @teacher.school
198
+ end
199
+
176
200
  # Terms
177
201
 
178
202
  Given /^When I request terms for an organization with id ([a-f0-9]{24})$/ do |org_id|
@@ -224,6 +248,10 @@ Given /^(?:When )?I request the current term for an org with id ([a-f0-9]{24}) a
224
248
  @term = @client.current_term(org_id, school_id)
225
249
  end
226
250
 
251
+ Given /^(?:When )?I request the sections for that term$/ do
252
+ @sections = @term.sections
253
+ end
254
+
227
255
  # Courses
228
256
 
229
257
  Given /^When I request courses for an organization with id ([a-f0-9]{24})$/ do |org_id|
@@ -42,3 +42,10 @@ Feature: Get Teachers
42
42
  * I request an org with id 4fdaeaa92eea44952ab9e520
43
43
  * When I request a teacher with id 4fdb1fceaa411b22c9a49d54 for that org
44
44
  * I should get a teacher with id 4fdb1fceaa411b22c9a49d54
45
+
46
+ Scenario: School for teacher
47
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
48
+ * I request an org with id 4fdaeaa92eea44952ab9e520
49
+ * I request a teacher with id 4fdb1fceaa411b22c9a49d54 for that org
50
+ * When I request the school for that teacher
51
+ * I should get a school with id 4fdac86faa411b22c9a3fd2f
@@ -54,3 +54,10 @@ Feature: Get Terms
54
54
  * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
55
55
  * When I request the current term for an org with id 4fdaeaa92eea44952ab9e520 and a school with id 4fdac86eaa411b22c9a3fd2e
56
56
  * I should get the current term
57
+
58
+ Scenario: Sections for term
59
+ * I have entered my api key as fcb8534c-e4ee-4e02-8b22-9328db1dac18
60
+ * I request an org with id 4fdaeaa92eea44952ab9e520
61
+ * I request a term with id 4fdb21cb91e4e64a06000008 for that org
62
+ * When I request the sections for that term
63
+ * I should get a list of 80 sections
@@ -1,6 +1,5 @@
1
1
  module LearnSprout
2
2
  class Course
3
- include LearnSprout::Connection
4
3
 
5
4
  attr_accessor :course_id,
6
5
  :school_id,
@@ -1,6 +1,5 @@
1
1
  module LearnSprout
2
2
  class Org
3
- include LearnSprout::Connection
4
3
 
5
4
  attr_accessor :org_id,
6
5
  :name
@@ -1,12 +1,14 @@
1
- module LearnSprout
2
- class Phone
3
-
4
- attr_accessor :fax,
5
- :main
6
-
7
- def initialize(attrs={})
8
- @fax = attrs["fax"]
9
- @main = attrs["main"]
10
- end
11
- end
12
- end
1
+ module LearnSprout
2
+ class Phone
3
+
4
+ attr_accessor :fax,
5
+ :main,
6
+ :home
7
+
8
+ def initialize(attrs={})
9
+ @fax = attrs["fax"]
10
+ @main = attrs["main"]
11
+ @home = attrs["home"]
12
+ end
13
+ end
14
+ end
@@ -1,69 +1,70 @@
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
1
+ module LearnSprout
2
+ class School
3
+
4
+ attr_accessor :school_id,
5
+ :name,
6
+ :number,
7
+ :nces,
8
+ :phone,
9
+ :address,
10
+ :time_updated
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
+ @time_updated = attrs["time_updated"]
22
+ end
23
+
24
+ #TODO Add org method?
25
+
26
+ def student(student_id)
27
+ @client.student(@org_id, student_id)
28
+ end
29
+
30
+ def students
31
+ @client.students(@org_id, :school_id => @school_id)
32
+ end
33
+
34
+ def section(section_id)
35
+ @client.section(@org_id, section_id)
36
+ end
37
+
38
+ def sections
39
+ @client.sections(@org_id, :school_id => @school_id)
40
+ end
41
+
42
+ def teacher(teacher_id)
43
+ @client.teacher(@org_id, teacher_id)
44
+ end
45
+
46
+ def teachers
47
+ @client.teachers(@org_id, :school_id => @school_id)
48
+ end
49
+
50
+ def term(term_id)
51
+ @client.term(@org_id, term_id)
52
+ end
53
+
54
+ def terms
55
+ @client.terms(@org_id, :school_id => @school_id)
56
+ end
57
+
58
+ def current_term
59
+ @client.current_term(@org_id, @school_id)
60
+ end
61
+
62
+ def course(course_id)
63
+ @client.course(@org_id, course_id)
64
+ end
65
+
66
+ def courses
67
+ @client.courses(@org_id, :school_id => @school_id)
68
+ end
69
+ end
70
+ end
@@ -1,10 +1,14 @@
1
1
  module LearnSprout
2
2
  class Section
3
- include LearnSprout::Connection
4
3
 
5
- attr_accessor :section_id,
4
+ attr_accessor :term_id,
5
+ :section_id,
6
6
  :number,
7
- :room
7
+ :room,
8
+ :time_updated,
9
+ :teacher_id,
10
+ :school_id,
11
+ :course_id
8
12
 
9
13
  def initialize(attrs={})
10
14
  @client = attrs["client"]
@@ -12,7 +16,43 @@ module LearnSprout
12
16
  @section_id = attrs["id"]
13
17
  @number = attrs["number"]
14
18
  @room = attrs["room"]
15
- #TODO: Other attrs
19
+ @term_id = attrs["term"] && attrs["term"]["id"]
20
+ @teacher_id = attrs["teacher"] && attrs["teacher"]["id"]
21
+ @school_id = attrs["school"] && attrs["school"]["id"]
22
+ @course_id = attrs["course"] && attrs["course"]["id"]
23
+ @time_updated = attrs["time_updated"]
24
+ @student_ids = []
25
+ if attrs["students"]
26
+ attrs["students"].each do |student|
27
+ @student_ids.push student["id"]
28
+ end
29
+ end
30
+ end
31
+
32
+ def term
33
+ @term_id && @client.term(@org_id, @term_id)
34
+ end
35
+
36
+ def teacher
37
+ @teacher_id && @client.teacher(@org_id, @teacher_id)
38
+ end
39
+
40
+ def school
41
+ @school_id && @client.school(@org_id, @school_id)
42
+ end
43
+
44
+ def course
45
+ @course_id && @client.course(@org_id, @course_id)
46
+ end
47
+
48
+ def students
49
+ temp_students = []
50
+ if @student_ids.count > 0
51
+ @student_ids.each do |student_id|
52
+ temp_students.push @client.student(@org_id, student_id)
53
+ end
54
+ end
55
+ return temp_students
16
56
  end
17
57
  end
18
58
  end
@@ -1,16 +1,38 @@
1
1
  module LearnSprout
2
2
  class Student
3
- include LearnSprout::Connection
4
3
 
5
4
  attr_accessor :student_id,
6
- :name
5
+ :last_name,
6
+ :grade,
7
+ :address,
8
+ :school_id,
9
+ :number,
10
+ :phone,
11
+ :birthday,
12
+ :first_name,
13
+ :time_updated,
14
+ :middle_name,
15
+ :gender,
16
+ :exit_date,
17
+ :entry_date
7
18
 
8
19
  def initialize(attrs={})
9
20
  @client = attrs["client"]
10
21
  @org_id = attrs["org_id"]
11
22
  @student_id = attrs["id"]
12
- @name = attrs["name"]
13
- #TODO: Other attrs
23
+ @last_name = attrs["last_name"]
24
+ @grade = attrs["grade"]
25
+ @address = Address.new(attrs["address"])
26
+ @school_id = attrs["school"]["id"]
27
+ @number = attrs["number"]
28
+ @phone = Phone.new(attrs["phone"])
29
+ @birthday = attrs["birthday"] && Date.parse(attrs["birthday"])
30
+ @first_name = attrs["first_name"]
31
+ @time_updated = attrs["time_updated"]
32
+ @middle_name = attrs["middle_name"]
33
+ @gender = attrs["gender"]
34
+ @exit_date = attrs["exit_date"] && Date.parse(attrs["exit_date"])
35
+ @entry_date = attrs["entry_date"] && Date.parse(attrs["entry_date"])
14
36
  end
15
37
  end
16
38
  end
@@ -1,18 +1,18 @@
1
1
  module LearnSprout
2
2
  class Teacher
3
- include LearnSprout::Connection
4
3
 
5
4
  attr_accessor :teacher_id,
6
5
  :first_name,
7
6
  :middle_name,
8
7
  :last_name,
9
8
  :title,
9
+ :address,
10
+ :school_id,
10
11
  :number,
12
+ :phone,
11
13
  :time_updated,
12
14
  :email
13
15
 
14
- #TODO Other fields
15
-
16
16
  def initialize(attrs={})
17
17
  @client = attrs["client"]
18
18
  @org_id = attrs["org_id"]
@@ -21,10 +21,16 @@ module LearnSprout
21
21
  @middle_name = attrs["middle_name"]
22
22
  @last_name = attrs["last_name"]
23
23
  @title = attrs["title"]
24
+ @address = attrs["address"] && Address.new(attrs["address"])
25
+ @school_id = attrs["school"] && attrs["school"]["id"]
24
26
  @number = attrs["number"]
27
+ @phone = attrs["phone"] && Phone.new(attrs["phone"])
25
28
  @time_updated = attrs["time_updated"]
26
29
  @email = attrs["email"]
27
- #TODO: Other attrs
30
+ end
31
+
32
+ def school
33
+ @school_id && @client.school(@org_id, @school_id)
28
34
  end
29
35
  end
30
36
  end
@@ -1,22 +1,38 @@
1
1
  module LearnSprout
2
2
  class Term
3
- include LearnSprout::Connection
4
3
 
5
4
  attr_accessor :term_id,
6
5
  :name,
7
6
  :end_date,
8
- :start_date
9
-
10
- #TODO Other fields
7
+ :start_date,
8
+ :school_id,
9
+ :time_updated
11
10
 
12
11
  def initialize(attrs={})
13
12
  @client = attrs["client"]
14
13
  @org_id = attrs["org_id"]
15
14
  @term_id = attrs["id"]
16
15
  @name = attrs["name"]
17
- @end_date = Date.parse(attrs["end_date"])
18
- @start_date = Date.parse(attrs["start_date"])
19
- #TODO: Other attrs
16
+ @end_date = attrs["end_date"] && Date.parse(attrs["end_date"])
17
+ @start_date = attrs["start_date"] && Date.parse(attrs["start_date"])
18
+ @school_id = attrs["school_id"]
19
+ @time_updated = attrs["time_updated"]
20
+ @section_ids = []
21
+ if attrs["sections"]
22
+ attrs["sections"].each do |section|
23
+ @section_ids.push section["id"]
24
+ end
25
+ end
26
+ end
27
+
28
+ def sections
29
+ temp_sections = []
30
+ if @section_ids.count > 0
31
+ @section_ids.each do |section_id|
32
+ temp_sections.push @client.section(@org_id, section_id)
33
+ end
34
+ end
35
+ return temp_sections
20
36
  end
21
37
  end
22
38
  end
@@ -1,4 +1,4 @@
1
1
  module LearnSprout
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
4
4
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Francis Kam