moodle_rb 0.0.5

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 (50) hide show
  1. data/.gitignore +35 -0
  2. data/Gemfile +2 -0
  3. data/LICENSE +22 -0
  4. data/README.md +108 -0
  5. data/Rakefile +1 -0
  6. data/lib/moodle_rb/categories.rb +94 -0
  7. data/lib/moodle_rb/client.rb +44 -0
  8. data/lib/moodle_rb/courses.rb +101 -0
  9. data/lib/moodle_rb/enrolments.rb +39 -0
  10. data/lib/moodle_rb/error.rb +18 -0
  11. data/lib/moodle_rb/grades.rb +42 -0
  12. data/lib/moodle_rb/users.rb +83 -0
  13. data/lib/moodle_rb/utility.rb +25 -0
  14. data/lib/moodle_rb/version.rb +7 -0
  15. data/lib/moodle_rb.rb +16 -0
  16. data/moodle_rb.gemspec +27 -0
  17. data/spec/cassettes/MoodleRb_Categories/_create/.yml +39 -0
  18. data/spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml +39 -0
  19. data/spec/cassettes/MoodleRb_Categories/_destroy/.yml +75 -0
  20. data/spec/cassettes/MoodleRb_Categories/_index/.yml +39 -0
  21. data/spec/cassettes/MoodleRb_Categories/_show/.yml +39 -0
  22. data/spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml +39 -0
  23. data/spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml +39 -0
  24. data/spec/cassettes/MoodleRb_Courses/_create/.yml +39 -0
  25. data/spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml +75 -0
  26. data/spec/cassettes/MoodleRb_Courses/_destroy/.yml +75 -0
  27. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/.yml +75 -0
  28. data/spec/cassettes/MoodleRb_Courses/_index/.yml +39 -0
  29. data/spec/cassettes/MoodleRb_Courses/_show/.yml +39 -0
  30. data/spec/cassettes/MoodleRb_Enrolments/_create/.yml +39 -0
  31. data/spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml +39 -0
  32. data/spec/cassettes/MoodleRb_Grades/_by_assignment/.yml +39 -0
  33. data/spec/cassettes/MoodleRb_Grades/_by_course/.yml +39 -0
  34. data/spec/cassettes/MoodleRb_Users/_create/.yml +39 -0
  35. data/spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml +39 -0
  36. data/spec/cassettes/MoodleRb_Users/_destroy/.yml +39 -0
  37. data/spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml +39 -0
  38. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml +39 -0
  39. data/spec/cassettes/MoodleRb_Users/_show/.yml +39 -0
  40. data/spec/lib/moodle_rb/categories_spec.rb +74 -0
  41. data/spec/lib/moodle_rb/client_spec.rb +45 -0
  42. data/spec/lib/moodle_rb/courses_spec.rb +92 -0
  43. data/spec/lib/moodle_rb/enrolments_spec.rb +39 -0
  44. data/spec/lib/moodle_rb/error_spec.rb +20 -0
  45. data/spec/lib/moodle_rb/grades_spec.rb +32 -0
  46. data/spec/lib/moodle_rb/users_spec.rb +87 -0
  47. data/spec/lib/moodle_rb/utility_spec.rb +23 -0
  48. data/spec/lib/moodle_rb_spec.rb +11 -0
  49. data/spec/spec_helper.rb +25 -0
  50. metadata +251 -0
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe MoodleRb::Enrolments do
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '' }
6
+ let(:enrolment_moodle_rb) { MoodleRb.new(token, url).enrolments }
7
+
8
+ describe '#create', :vcr => {
9
+ :match_requests_on => [:headers], :record => :once
10
+ } do
11
+ let(:params) do
12
+ {
13
+ :user_id => 3,
14
+ :course_id => 8
15
+ }
16
+ end
17
+ let(:result) { enrolment_moodle_rb.create(params) }
18
+
19
+ specify do
20
+ expect(result).to eq true
21
+ end
22
+
23
+ context 'when user or course id is invalid' do
24
+ let(:params) do
25
+ {
26
+ :user_id => 9999,
27
+ :course_id => 9999
28
+ }
29
+ end
30
+
31
+ specify do
32
+ expect{ result }.to raise_error(
33
+ MoodleRb::MoodleError,
34
+ 'Invalid parameter value detected'
35
+ )
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe MoodleRb::MoodleError do
4
+ describe '#new' do
5
+ let(:response_body) do
6
+ {
7
+ 'exception' => 'moodle_rb_exception',
8
+ 'errorcode' => 'categoryidnumbertaken',
9
+ 'message' => 'ID number is already used for another category'
10
+ }
11
+ end
12
+ let!(:exception) { MoodleRb::MoodleError.new(response_body) }
13
+
14
+ specify do
15
+ expect(exception.message).to eq 'ID number is already used for another category'
16
+ expect(exception.code).to eq 'categoryidnumbertaken'
17
+ expect(exception.response_body).to eq response_body
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe MoodleRb::Grades do
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '' }
6
+ let(:grade_moodle_rb) { MoodleRb.new(token, url).grades }
7
+
8
+ describe '#by_assignment', :vcr => {
9
+ :match_requests_on => [:body, :headers], :record => :once
10
+ } do
11
+ let(:assignment_id) { 1 }
12
+ let(:result) { grade_moodle_rb.by_assignment(assignment_id) }
13
+
14
+ specify do
15
+ expect(result).to be_a Array
16
+ expect(result.first).to have_key 'assignmentid'
17
+ end
18
+ end
19
+
20
+ describe '#by_course', :vcr => {
21
+ :match_requests_on => [:headers], :record => :once
22
+ } do
23
+ let(:course_id) { 8 }
24
+ let(:user_ids) { 5 }
25
+ let(:result) { grade_moodle_rb.by_course(course_id, user_ids) }
26
+
27
+ specify do
28
+ expect(result).to be_a Array
29
+ expect(result.first).to have_key 'activityid'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+
3
+ describe MoodleRb::Users do
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '' }
6
+ let(:user_moodle_rb) { MoodleRb.new(token, url).users }
7
+
8
+ describe '#create', :vcr => {
9
+ :match_requests_on => [:headers], :record => :once
10
+ } do
11
+ let(:params) do
12
+ {
13
+ :username => 'testuser1',
14
+ :password => 'Password123!',
15
+ :firstname => 'Austin',
16
+ :lastname => 'Powers',
17
+ :email => 'austinp1@jobready.com.au',
18
+ :idnumber => 'PAUST002'
19
+ }
20
+ end
21
+ let(:result) { user_moodle_rb.create(params) }
22
+
23
+ specify do
24
+ expect(result).to be_a Hash
25
+ expect(result).to have_key 'username'
26
+ expect(result['id']).to eq 5
27
+ end
28
+
29
+ context 'when missing required parameters' do
30
+ let(:params) do
31
+ {
32
+ :username => 'testuser1'
33
+ }
34
+ end
35
+
36
+ specify do
37
+ expect{ result }.to raise_error(
38
+ MoodleRb::MoodleError,
39
+ 'Invalid parameter value detected'
40
+ )
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '#show', :vcr => {
46
+ :match_requests_on => [:headers], :record => :once
47
+ } do
48
+ let(:id) { 5 }
49
+ let(:result) { user_moodle_rb.show(id) }
50
+
51
+ specify do
52
+ expect(result).to be_a Hash
53
+ expect(result['id']).to eq 5
54
+ end
55
+ end
56
+
57
+ describe '#destroy', :vcr => {
58
+ :match_requests_on => [:headers], :record => :once
59
+ } do
60
+ let(:id) { 5 }
61
+ let(:result) { user_moodle_rb.destroy(id) }
62
+
63
+ specify do
64
+ expect(result).to eq true
65
+ end
66
+
67
+ context 'when id does not exist' do
68
+ let(:id) { 999 }
69
+ specify do
70
+ expect(result).to eq false
71
+ end
72
+ end
73
+ end
74
+
75
+ describe '#enrolled_courses', :vcr => {
76
+ :match_requests_on => [:headers], :record => :once
77
+ } do
78
+ let(:user_id) { 3 }
79
+ let(:result) { user_moodle_rb.enrolled_courses(user_id) }
80
+ let(:enrolment) { result.first }
81
+
82
+ specify do
83
+ expect(result).to be_a Array
84
+ expect(enrolment).to have_key 'shortname'
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+ include MoodleRb::Utility
3
+
4
+ describe MoodleRb::Utility do
5
+ describe '#api_array' do
6
+ let(:result) { api_array(input) }
7
+
8
+ context 'when array provided' do
9
+ let(:output) { {0=>1, 1=>2} }
10
+ specify { expect(api_array([1, 2])).to eq output }
11
+ end
12
+
13
+ context 'when single value provided' do
14
+ let(:output) { {0=>1} }
15
+ specify { expect(api_array(1)).to eq output }
16
+ end
17
+
18
+ context 'when multiple values provided' do
19
+ let(:output) { {0=>1, 1=>5, 2=>8} }
20
+ specify { expect(api_array(1, 5, 8)).to eq output }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe MoodleRb do
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '' }
6
+ let(:moodle_rb) { MoodleRb.new(token, url) }
7
+
8
+ describe 'new' do
9
+ specify { expect(moodle_rb).to be_a MoodleRb::Client }
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ require 'bundler/setup'
2
+ Bundler.require(:default, :development)
3
+
4
+ RSpec.configure do |config|
5
+ config.run_all_when_everything_filtered = true
6
+ config.filter_run :focus
7
+ config.filter_run_excluding :perf => true
8
+ config.order = 'random'
9
+ end
10
+
11
+ require 'webmock/rspec'
12
+ RSpec.configure do |config|
13
+ config.before(:each) do
14
+ WebMock.disable_net_connect!
15
+ end
16
+ end
17
+
18
+ require 'vcr'
19
+ VCR.configure do |c|
20
+ c.cassette_library_dir = 'spec/cassettes'
21
+ c.hook_into :webmock
22
+ c.configure_rspec_metadata!
23
+ end
24
+
25
+ require File.expand_path('../../lib/moodle_rb.rb', __FILE__)
metadata ADDED
@@ -0,0 +1,251 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: moodle_rb
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 5
10
+ version: 0.0.5
11
+ platform: ruby
12
+ authors:
13
+ - Sam Giffney
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2015-04-23 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: bundler
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 9
29
+ segments:
30
+ - 1
31
+ - 3
32
+ version: "1.3"
33
+ type: :development
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: ruby-debug
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ hash: 63
44
+ segments:
45
+ - 0
46
+ - 10
47
+ - 4
48
+ version: 0.10.4
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: rake
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :development
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: rspec
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ hash: 7
74
+ segments:
75
+ - 3
76
+ - 0
77
+ version: "3.0"
78
+ type: :development
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: webmock
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ hash: 15
89
+ segments:
90
+ - 1
91
+ - 0
92
+ version: "1.0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: vcr
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ hash: 17
104
+ segments:
105
+ - 2
106
+ - 9
107
+ version: "2.9"
108
+ type: :development
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: httparty
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ hash: 51
119
+ segments:
120
+ - 0
121
+ - 11
122
+ - 0
123
+ version: 0.11.0
124
+ type: :runtime
125
+ version_requirements: *id007
126
+ description:
127
+ email:
128
+ - samg@jobready.com.au
129
+ executables: []
130
+
131
+ extensions: []
132
+
133
+ extra_rdoc_files: []
134
+
135
+ files:
136
+ - .gitignore
137
+ - Gemfile
138
+ - LICENSE
139
+ - README.md
140
+ - Rakefile
141
+ - lib/moodle_rb.rb
142
+ - lib/moodle_rb/categories.rb
143
+ - lib/moodle_rb/client.rb
144
+ - lib/moodle_rb/courses.rb
145
+ - lib/moodle_rb/enrolments.rb
146
+ - lib/moodle_rb/error.rb
147
+ - lib/moodle_rb/grades.rb
148
+ - lib/moodle_rb/users.rb
149
+ - lib/moodle_rb/utility.rb
150
+ - lib/moodle_rb/version.rb
151
+ - moodle_rb.gemspec
152
+ - spec/cassettes/MoodleRb_Categories/_create/.yml
153
+ - spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml
154
+ - spec/cassettes/MoodleRb_Categories/_destroy/.yml
155
+ - spec/cassettes/MoodleRb_Categories/_index/.yml
156
+ - spec/cassettes/MoodleRb_Categories/_show/.yml
157
+ - spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml
158
+ - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
159
+ - spec/cassettes/MoodleRb_Courses/_create/.yml
160
+ - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
161
+ - spec/cassettes/MoodleRb_Courses/_destroy/.yml
162
+ - spec/cassettes/MoodleRb_Courses/_enrolled_users/.yml
163
+ - spec/cassettes/MoodleRb_Courses/_index/.yml
164
+ - spec/cassettes/MoodleRb_Courses/_show/.yml
165
+ - spec/cassettes/MoodleRb_Enrolments/_create/.yml
166
+ - spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml
167
+ - spec/cassettes/MoodleRb_Grades/_by_assignment/.yml
168
+ - spec/cassettes/MoodleRb_Grades/_by_course/.yml
169
+ - spec/cassettes/MoodleRb_Users/_create/.yml
170
+ - spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml
171
+ - spec/cassettes/MoodleRb_Users/_destroy/.yml
172
+ - spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml
173
+ - spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml
174
+ - spec/cassettes/MoodleRb_Users/_show/.yml
175
+ - spec/lib/moodle_rb/categories_spec.rb
176
+ - spec/lib/moodle_rb/client_spec.rb
177
+ - spec/lib/moodle_rb/courses_spec.rb
178
+ - spec/lib/moodle_rb/enrolments_spec.rb
179
+ - spec/lib/moodle_rb/error_spec.rb
180
+ - spec/lib/moodle_rb/grades_spec.rb
181
+ - spec/lib/moodle_rb/users_spec.rb
182
+ - spec/lib/moodle_rb/utility_spec.rb
183
+ - spec/lib/moodle_rb_spec.rb
184
+ - spec/spec_helper.rb
185
+ homepage: https://github.com/jobready/moodle-rb
186
+ licenses:
187
+ - MIT
188
+ post_install_message:
189
+ rdoc_options: []
190
+
191
+ require_paths:
192
+ - lib
193
+ required_ruby_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ hash: 3
199
+ segments:
200
+ - 0
201
+ version: "0"
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ hash: 3
208
+ segments:
209
+ - 0
210
+ version: "0"
211
+ requirements: []
212
+
213
+ rubyforge_project:
214
+ rubygems_version: 1.8.15
215
+ signing_key:
216
+ specification_version: 3
217
+ summary: A Ruby client for the Moodle API
218
+ test_files:
219
+ - spec/cassettes/MoodleRb_Categories/_create/.yml
220
+ - spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml
221
+ - spec/cassettes/MoodleRb_Categories/_destroy/.yml
222
+ - spec/cassettes/MoodleRb_Categories/_index/.yml
223
+ - spec/cassettes/MoodleRb_Categories/_show/.yml
224
+ - spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml
225
+ - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
226
+ - spec/cassettes/MoodleRb_Courses/_create/.yml
227
+ - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
228
+ - spec/cassettes/MoodleRb_Courses/_destroy/.yml
229
+ - spec/cassettes/MoodleRb_Courses/_enrolled_users/.yml
230
+ - spec/cassettes/MoodleRb_Courses/_index/.yml
231
+ - spec/cassettes/MoodleRb_Courses/_show/.yml
232
+ - spec/cassettes/MoodleRb_Enrolments/_create/.yml
233
+ - spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml
234
+ - spec/cassettes/MoodleRb_Grades/_by_assignment/.yml
235
+ - spec/cassettes/MoodleRb_Grades/_by_course/.yml
236
+ - spec/cassettes/MoodleRb_Users/_create/.yml
237
+ - spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml
238
+ - spec/cassettes/MoodleRb_Users/_destroy/.yml
239
+ - spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml
240
+ - spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml
241
+ - spec/cassettes/MoodleRb_Users/_show/.yml
242
+ - spec/lib/moodle_rb/categories_spec.rb
243
+ - spec/lib/moodle_rb/client_spec.rb
244
+ - spec/lib/moodle_rb/courses_spec.rb
245
+ - spec/lib/moodle_rb/enrolments_spec.rb
246
+ - spec/lib/moodle_rb/error_spec.rb
247
+ - spec/lib/moodle_rb/grades_spec.rb
248
+ - spec/lib/moodle_rb/users_spec.rb
249
+ - spec/lib/moodle_rb/utility_spec.rb
250
+ - spec/lib/moodle_rb_spec.rb
251
+ - spec/spec_helper.rb