learnsprout 0.0.1 → 0.0.2

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.
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