getclever-ruby 0.0.1

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.
Files changed (44) hide show
  1. data/.gitignore +21 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +4 -0
  4. data/Guardfile +13 -0
  5. data/LICENSE +22 -0
  6. data/README.md +71 -0
  7. data/Rakefile +2 -0
  8. data/getclever-ruby.gemspec +24 -0
  9. data/lib/clever.rb +16 -0
  10. data/lib/clever/api.rb +162 -0
  11. data/lib/clever/configuration.rb +10 -0
  12. data/lib/clever/error.rb +12 -0
  13. data/lib/clever/fake_response.rb +8 -0
  14. data/lib/clever/fake_server.rb +2785 -0
  15. data/lib/clever/models/contact.rb +7 -0
  16. data/lib/clever/models/district.rb +7 -0
  17. data/lib/clever/models/photo.rb +7 -0
  18. data/lib/clever/models/school.rb +7 -0
  19. data/lib/clever/models/section.rb +7 -0
  20. data/lib/clever/models/student.rb +7 -0
  21. data/lib/clever/models/teacher.rb +7 -0
  22. data/lib/clever/version.rb +3 -0
  23. data/lib/generators/clever/install_generator.rb +24 -0
  24. data/lib/generators/clever/templates/clever.yml +8 -0
  25. data/lib/generators/clever/templates/initializer.rb +3 -0
  26. data/lib/generators/crocodoc.rb +11 -0
  27. data/spec/api_spec.rb +0 -0
  28. data/spec/configuration_spec.rb +11 -0
  29. data/spec/endpoints/districts_spec.rb +86 -0
  30. data/spec/endpoints/schools_spec.rb +88 -0
  31. data/spec/endpoints/sections_spec.rb +74 -0
  32. data/spec/endpoints/students_spec.rb +100 -0
  33. data/spec/endpoints/teachers_spec.rb +85 -0
  34. data/spec/error_spec.rb +0 -0
  35. data/spec/fake_server_spec.rb +0 -0
  36. data/spec/models/contact_spec.rb +38 -0
  37. data/spec/models/district_spec.rb +24 -0
  38. data/spec/models/photo_spec.rb +23 -0
  39. data/spec/models/school_spec.rb +53 -0
  40. data/spec/models/section_spec.rb +48 -0
  41. data/spec/models/student_spec.rb +73 -0
  42. data/spec/models/teacher_spec.rb +46 -0
  43. data/spec/spec_helper.rb +16 -0
  44. metadata +201 -0
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+ require 'clever/api'
3
+
4
+ describe 'API' do
5
+ before do
6
+ Clever.configure do |config|
7
+ config.api_key = 'DEMO_KEY'
8
+ end
9
+
10
+ @api = Clever::API.new
11
+ @api.http = Clever::FakeServer.new({:api_key => Clever.config.api_key})
12
+ end
13
+
14
+ it "can get a list of teachers" do
15
+ teachers = @api.teachers({:limit => 4})
16
+
17
+ teachers[:data].length.should eq(4)
18
+
19
+ teachers[:data][0].id.should eq('4fee004dca2e43cf270007d5')
20
+ teachers[:data][0].name['first'].should eq('Nadia')
21
+ teachers[:data][0].name['middle'].should eq('H')
22
+ teachers[:data][0].name['last'].should eq('Mitchell')
23
+ end
24
+
25
+ it "can get a specific teacher" do
26
+ teacher = @api.teacher('4fee004dca2e43cf270007d5')
27
+
28
+ teacher.id.should eq('4fee004dca2e43cf270007d5')
29
+ teacher.name['first'].should eq('Nadia')
30
+ teacher.name['middle'].should eq('H')
31
+ teacher.name['last'].should eq('Mitchell')
32
+ end
33
+
34
+ it "can get a list of sections for a given teacher" do
35
+ sections = @api.teacher_sections('4fee004dca2e43cf270007fd', {:limit => 2})
36
+
37
+ unless sections[:paging].nil?
38
+ sections[:paging][:current].should eq(1)
39
+ sections[:paging][:total].should eq(2)
40
+ sections[:paging][:count].should eq(3)
41
+ end
42
+
43
+ sections[:data].length.should eq(2)
44
+
45
+ sections[:data][0].id.should eq('4fee004dca2e43cf2700081a')
46
+ sections[:data][0].name.should eq('Earth Arithmetic 4(B)')
47
+ end
48
+
49
+ it "can get a school for a given teacher" do
50
+ school = @api.teacher_school('4fee004dca2e43cf270007d5')
51
+
52
+ school.id.should eq('4fee004cca2e43cf27000003')
53
+ school.name.should eq('Clever High School')
54
+ end
55
+
56
+ it "can get a district for a given teacher" do
57
+ district = @api.teacher_district('4fee004dca2e43cf270007fd')
58
+
59
+ district.id.should eq('4fd43cc56d11340000000005')
60
+ district.name.should eq('Demo District')
61
+ end
62
+
63
+ it "can get a list of students for a given teacher" do
64
+ students = @api.teacher_students('4fee004dca2e43cf270007fd', {:limit => 5})
65
+
66
+ unless students[:paging].nil?
67
+ students[:paging][:current].should eq(1)
68
+ students[:paging][:total].should eq(17)
69
+ students[:paging][:count].should eq(81)
70
+ end
71
+
72
+ students[:data].length.should eq(5)
73
+ students[:data][0].id.should eq('4fee004cca2e43cf2700000d')
74
+ end
75
+
76
+ it "can get a list of grade levels for a given teacher" do
77
+ grade_levels = @api.teacher_grade_levels('4fee004dca2e43cf270007fd')
78
+
79
+ grade_levels.length.should eq(3)
80
+
81
+ grade_levels[0].should eq(6)
82
+ grade_levels[1].should eq(7)
83
+ grade_levels[2].should eq(8)
84
+ end
85
+ end
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/contact'
3
+
4
+ describe Clever::Models::Contact do
5
+ it 'requires initialization parameters' do
6
+ expect {Clever::Models::Contact.new}.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+ id = '4fee004dca2e43cf27000931'
11
+ name = 'Issac Roob'
12
+ email = 'Samanta.Schaefer@mailinator.com'
13
+ phone = '597.747.8259'
14
+ phone_type = 'home'
15
+ type = 'guardian'
16
+ student_id = '4fee004dca2e43cf27000931'
17
+
18
+ let(:params) {{
19
+ :id => id,
20
+ :name => name,
21
+ :email => email,
22
+ :phone => phone,
23
+ :phone_type => phone_type,
24
+ :type => type,
25
+ :student_id => student_id
26
+ }}
27
+
28
+ subject { Clever::Models::Contact.new params }
29
+
30
+ its(:id) { should == id }
31
+ its(:name) { should == name }
32
+ its(:email) { should == email }
33
+ its(:phone) { should == phone }
34
+ its(:phone_type) { should == phone_type }
35
+ its(:type) { should == type }
36
+ its(:student_id) { should == student_id }
37
+ end
38
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/district'
3
+
4
+ describe Clever::Models::District do
5
+ it 'requires an id and name' do
6
+ expect { Clever::Models::District.new }.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+
11
+ id = '4fd43cc56d11340000000005'
12
+ name = 'Test District'
13
+
14
+ let(:params) { {
15
+ :id => id,
16
+ :name => name
17
+ } }
18
+
19
+ subject { Clever::Models::District.new params }
20
+
21
+ its(:id) { should == id }
22
+ its(:name) { should == name }
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/photo'
3
+
4
+ describe Clever::Models::Photo do
5
+ it 'requires initialization parameters' do
6
+ expect {Clever::Models::Photo.new}.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+ id = '4fee004cca2e43cf27000001'
11
+ data = 'lots of bytes'
12
+
13
+ let(:params) {{
14
+ :id => id,
15
+ :data => data
16
+ }}
17
+
18
+ subject { Clever::Models::Photo.new params }
19
+
20
+ its(:id) { should == id }
21
+ its(:data) { should == data }
22
+ end
23
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/school'
3
+
4
+ describe Clever::Models::School do
5
+ it 'requires initialization parameters' do
6
+ expect {Clever::Models::School.new}.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+ id = '4fee004cca2e43cf27000001'
11
+ name = 'Clever Academy'
12
+ high_grade = '8'
13
+ low_grade = '6'
14
+ nces_id = '17065379'
15
+ phone = '1-755-019-5442'
16
+ school_number = '214'
17
+ sis_id = '9255'
18
+ location = { :address => "18828 Kutch Court", :city => "Dessiemouth", :state => "IA", :zip => "37471-9969" }
19
+ principal = { :name => "Colleen Gottlieb", :email => "Eda_Barrows@mailinator.com" }
20
+ last_modified = '2012-06-29T19:21:50.592Z'
21
+ district_id = '4fd43cc56d11340000000005'
22
+
23
+ let(:params) {{
24
+ :id => id,
25
+ :name => name,
26
+ :high_grade => high_grade,
27
+ :low_grade => low_grade,
28
+ :nces_id => nces_id,
29
+ :phone => phone,
30
+ :school_number => school_number,
31
+ :sis_id => sis_id,
32
+ :location => location,
33
+ :principal => principal,
34
+ :last_modified => last_modified,
35
+ :district_id => district_id
36
+ }}
37
+
38
+ subject { Clever::Models::School.new params }
39
+
40
+ its(:id) { should == id }
41
+ its(:name) { should == name }
42
+ its(:high_grade) { should == high_grade }
43
+ its(:low_grade) { should == low_grade }
44
+ its(:nces_id) { should == nces_id }
45
+ its(:phone) { should == phone }
46
+ its(:school_number) { should == school_number }
47
+ its(:sis_id) { should == sis_id }
48
+ its(:location) { should == location }
49
+ its(:principal) { should == principal }
50
+ its(:last_modified) { should == last_modified }
51
+
52
+ end
53
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/section'
3
+
4
+ describe Clever::Models::Section do
5
+ it 'requires initialization parameters' do
6
+ expect {Clever::Models::Section.new}.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+ id = '4fee004dca2e43cf27000807'
11
+ district_id = '4fd43cc56d11340000000005'
12
+ name = 'Advanced Arithmetic 8(A)'
13
+ grade = '7'
14
+ school_id = '4fee004cca2e43cf27000003'
15
+ section_number = '73'
16
+ sis_id = '1783'
17
+ subject = 'math'
18
+ teacher_id = '4fee004dca2e43cf270007f4'
19
+ last_modified = '2012-06-29T19:22:17.766Z'
20
+ students = %w(4fee004dca2e43cf2700069f 4fee004dca2e43cf270004ed)
21
+
22
+ let(:params) {{
23
+ :id => id,
24
+ :name => name,
25
+ :sis_id => sis_id,
26
+ :last_modified => last_modified,
27
+ :district_id => district_id,
28
+ :school_id => school_id,
29
+ :section_number => section_number,
30
+ :subject => subject,
31
+ :teacher_id => teacher_id,
32
+ :students => students
33
+ }}
34
+
35
+ subject { Clever::Models::Section.new params }
36
+
37
+ its(:id) { should == id }
38
+ its(:name) { should == name }
39
+ its(:sis_id) { should == sis_id }
40
+ its(:last_modified) { should == last_modified }
41
+ its(:district_id) { should == district_id }
42
+ its(:school_id) { should == school_id }
43
+ its(:section_number) { should == section_number }
44
+ its(:subject) { should == subject }
45
+ its(:teacher_id) { should == teacher_id }
46
+ its(:students) { should == students }
47
+ end
48
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/student'
3
+
4
+ describe Clever::Models::Student do
5
+ it 'requires initialization parameters' do
6
+ expect {Clever::Models::Student.new}.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+ id = '4fee004cca2e43cf27000005'
11
+ district_id = '4fd43cc56d11340000000005'
12
+ dob = '12/12/1998'
13
+ frl_status = 'Y'
14
+ gender = 'M'
15
+ grade = '7'
16
+ hispanic_ethnicity = 'N'
17
+ race = 'Asian'
18
+ school_id = '4fee004cca2e43cf27000003'
19
+ sis_id = '1783'
20
+ state_id = '2237504'
21
+ student_number = '24772'
22
+ location = {
23
+ :address => '9272 Ratke Haven',
24
+ :city => 'North Maurinetown',
25
+ :state => 'AP',
26
+ :zip => '22505-3577',
27
+ :lat => '-21.901449509896338',
28
+ :lon => '114.23126022331417'
29
+ }
30
+ name = {
31
+ :first => 'Constance',
32
+ :middle => '',
33
+ :last => 'Roob'
34
+ }
35
+ last_modified = '2012-06-29T19:21:50.709Z'
36
+
37
+ let(:params) {{
38
+ :id => id,
39
+ :name => name,
40
+ :sis_id => sis_id,
41
+ :location => location,
42
+ :last_modified => last_modified,
43
+ :district_id => district_id,
44
+ :school_id => school_id,
45
+ :state_id => state_id,
46
+ :dob => dob,
47
+ :frl_status => frl_status,
48
+ :gender => gender,
49
+ :grade => grade,
50
+ :hispanic_ethnicity => hispanic_ethnicity,
51
+ :race => race,
52
+ :student_number => student_number
53
+ }}
54
+
55
+ subject { Clever::Models::Student.new params }
56
+
57
+ its(:id) { should == id }
58
+ its(:name) { should == name }
59
+ its(:sis_id) { should == sis_id }
60
+ its(:location) { should == location }
61
+ its(:last_modified) { should == last_modified }
62
+ its(:district_id) { should == district_id }
63
+ its(:school_id) { should == school_id }
64
+ its(:state_id) { should == state_id }
65
+ its(:dob) { should == dob }
66
+ its(:frl_status) { should == frl_status }
67
+ its(:gender) { should == gender }
68
+ its(:grade) { should == grade }
69
+ its(:hispanic_ethnicity) { should == hispanic_ethnicity }
70
+ its(:race) { should == race }
71
+ its(:student_number) { should == student_number }
72
+ end
73
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'clever/models/teacher'
3
+
4
+ describe Clever::Models::Teacher do
5
+ it 'requires initialization parameters' do
6
+ expect { Clever::Models::Teacher.new }.to raise_error(ArgumentError)
7
+ end
8
+
9
+ context "valid values" do
10
+ district_id = '4fd43cc56d11340000000005',
11
+ email = 'ashlee@mailinator.com',
12
+ school_id = '4fee004cca2e43cf27000003',
13
+ sis_id = '1720',
14
+ title = 'Orchestrate Visionary Technologies Manager',
15
+ name = {
16
+ :first => 'Nadia',
17
+ :middle => 'H',
18
+ :last => 'Mitchell'
19
+ },
20
+ last_modified = '2012-06-29T19:22:16.552Z',
21
+ id = '4fee004dca2e43cf270007d5'
22
+
23
+ let(:params) {{
24
+ :id => id,
25
+ :name => name,
26
+ :email => email,
27
+ :title => title,
28
+ :sis_id => sis_id,
29
+ :last_modified => last_modified,
30
+ :school_id => school_id,
31
+ :district_id => district_id
32
+ }}
33
+
34
+ subject { Clever::Models::Teacher.new params }
35
+
36
+ its(:id) { should == id }
37
+ its(:name) { should == name }
38
+ its(:email) { should == email }
39
+ its(:title) { should == title }
40
+ its(:sis_id) { should == sis_id }
41
+ its(:last_modified) { should == last_modified }
42
+ its(:school_id) { should == school_id }
43
+ its(:district_id) { should == district_id }
44
+
45
+ end
46
+ end
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+ require 'spork'
3
+
4
+ Spork.prefork do
5
+
6
+ end
7
+
8
+ Spork.each_run do
9
+
10
+ end
11
+
12
+ lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
13
+ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
14
+
15
+ require 'clever'
16
+ require 'clever/fake_server'
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: getclever-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Lexim
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: spork
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.9.0.rc
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.0.rc
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard-rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 0.7.0
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.7.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: terminal-notifier-guard
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description:
111
+ email:
112
+ - hello@getlexim.com
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - .gitignore
118
+ - .rspec
119
+ - Gemfile
120
+ - Guardfile
121
+ - LICENSE
122
+ - README.md
123
+ - Rakefile
124
+ - getclever-ruby.gemspec
125
+ - lib/clever.rb
126
+ - lib/clever/api.rb
127
+ - lib/clever/configuration.rb
128
+ - lib/clever/error.rb
129
+ - lib/clever/fake_response.rb
130
+ - lib/clever/fake_server.rb
131
+ - lib/clever/models/contact.rb
132
+ - lib/clever/models/district.rb
133
+ - lib/clever/models/photo.rb
134
+ - lib/clever/models/school.rb
135
+ - lib/clever/models/section.rb
136
+ - lib/clever/models/student.rb
137
+ - lib/clever/models/teacher.rb
138
+ - lib/clever/version.rb
139
+ - lib/generators/clever/install_generator.rb
140
+ - lib/generators/clever/templates/clever.yml
141
+ - lib/generators/clever/templates/initializer.rb
142
+ - lib/generators/crocodoc.rb
143
+ - spec/api_spec.rb
144
+ - spec/configuration_spec.rb
145
+ - spec/endpoints/districts_spec.rb
146
+ - spec/endpoints/schools_spec.rb
147
+ - spec/endpoints/sections_spec.rb
148
+ - spec/endpoints/students_spec.rb
149
+ - spec/endpoints/teachers_spec.rb
150
+ - spec/error_spec.rb
151
+ - spec/fake_server_spec.rb
152
+ - spec/models/contact_spec.rb
153
+ - spec/models/district_spec.rb
154
+ - spec/models/photo_spec.rb
155
+ - spec/models/school_spec.rb
156
+ - spec/models/section_spec.rb
157
+ - spec/models/student_spec.rb
158
+ - spec/models/teacher_spec.rb
159
+ - spec/spec_helper.rb
160
+ homepage: http://github.com/lexim/getclever-ruby
161
+ licenses: []
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ requirements: []
179
+ rubyforge_project:
180
+ rubygems_version: 1.8.24
181
+ signing_key:
182
+ specification_version: 3
183
+ summary: Ruby library for interacting with the Clever API
184
+ test_files:
185
+ - spec/api_spec.rb
186
+ - spec/configuration_spec.rb
187
+ - spec/endpoints/districts_spec.rb
188
+ - spec/endpoints/schools_spec.rb
189
+ - spec/endpoints/sections_spec.rb
190
+ - spec/endpoints/students_spec.rb
191
+ - spec/endpoints/teachers_spec.rb
192
+ - spec/error_spec.rb
193
+ - spec/fake_server_spec.rb
194
+ - spec/models/contact_spec.rb
195
+ - spec/models/district_spec.rb
196
+ - spec/models/photo_spec.rb
197
+ - spec/models/school_spec.rb
198
+ - spec/models/section_spec.rb
199
+ - spec/models/student_spec.rb
200
+ - spec/models/teacher_spec.rb
201
+ - spec/spec_helper.rb