ims-lti 1.2.4 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +5 -5
  2. data/Changelog.txt +0 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +25 -91
  5. data/lib/ims/lis/context_type/handles.rb +10 -0
  6. data/lib/ims/lis/context_type/urns.rb +10 -0
  7. data/lib/ims/lis/roles/context/handles.rb +60 -0
  8. data/lib/ims/lis/roles/context/urns.rb +60 -0
  9. data/lib/ims/lis/roles/institution/handles.rb +22 -0
  10. data/lib/ims/lis/roles/institution/urns.rb +22 -0
  11. data/lib/ims/lis/roles/system/handles.rb +15 -0
  12. data/lib/ims/lis/roles/system/urns.rb +15 -0
  13. data/lib/ims/lis/statuses/simple_names.rb +9 -0
  14. data/lib/ims/lis/statuses/uris.rb +9 -0
  15. data/lib/ims/lis.rb +14 -0
  16. data/lib/ims/lti/converters/time_json_converter.rb +13 -0
  17. data/lib/ims/lti/converters.rb +5 -0
  18. data/lib/ims/lti/errors/authentication_failed_error.rb +11 -0
  19. data/lib/ims/lti/errors/invalid_lti_config_error.rb +4 -0
  20. data/lib/ims/lti/errors/invalid_tool_consumer_profile.rb +4 -0
  21. data/lib/ims/lti/errors/tool_proxy_registration_error.rb +15 -0
  22. data/lib/ims/lti/errors.rb +8 -0
  23. data/lib/ims/lti/models/base_url_choice.rb +15 -0
  24. data/lib/ims/lti/models/base_url_selector.rb +5 -0
  25. data/lib/ims/lti/models/contact.rb +5 -0
  26. data/lib/ims/lti/models/content_item_container.rb +14 -0
  27. data/lib/ims/lti/models/content_item_placement.rb +20 -0
  28. data/lib/ims/lti/models/content_items/content_item.rb +32 -0
  29. data/lib/ims/lti/models/content_items/file_item.rb +15 -0
  30. data/lib/ims/lti/models/content_items/lti_link_item.rb +14 -0
  31. data/lib/ims/lti/models/content_items.rb +7 -0
  32. data/lib/ims/lti/models/icon_endpoint.rb +5 -0
  33. data/lib/ims/lti/models/icon_info.rb +6 -0
  34. data/lib/ims/lti/models/image.rb +7 -0
  35. data/lib/ims/lti/models/localized_name.rb +12 -0
  36. data/lib/ims/lti/models/localized_text.rb +12 -0
  37. data/lib/ims/lti/models/lti_model.rb +227 -0
  38. data/lib/ims/lti/models/membership_service/agent.rb +11 -0
  39. data/lib/ims/lti/models/membership_service/container.rb +11 -0
  40. data/lib/ims/lti/models/membership_service/context.rb +11 -0
  41. data/lib/ims/lti/models/membership_service/lis_membership_container.rb +13 -0
  42. data/lib/ims/lti/models/membership_service/lis_person.rb +13 -0
  43. data/lib/ims/lti/models/membership_service/membership.rb +14 -0
  44. data/lib/ims/lti/models/membership_service/organization.rb +14 -0
  45. data/lib/ims/lti/models/membership_service/page.rb +16 -0
  46. data/lib/ims/lti/models/membership_service/person.rb +13 -0
  47. data/lib/ims/lti/models/membership_service.rb +16 -0
  48. data/lib/ims/lti/models/message_handler.rb +14 -0
  49. data/lib/ims/lti/models/messages/basic_lti_launch_request.rb +24 -0
  50. data/lib/ims/lti/models/messages/content_item_selection.rb +32 -0
  51. data/lib/ims/lti/models/messages/content_item_selection_request.rb +26 -0
  52. data/lib/ims/lti/models/messages/message.rb +222 -0
  53. data/lib/ims/lti/models/messages/registration_request.rb +20 -0
  54. data/lib/ims/lti/models/messages/request_message.rb +12 -0
  55. data/lib/ims/lti/models/messages/tool_proxy_update_request.rb +15 -0
  56. data/lib/ims/lti/models/messages.rb +11 -0
  57. data/lib/ims/lti/models/parameter.rb +28 -0
  58. data/lib/ims/lti/models/product_family.rb +8 -0
  59. data/lib/ims/lti/models/product_info.rb +26 -0
  60. data/lib/ims/lti/models/product_instance.rb +10 -0
  61. data/lib/ims/lti/models/resource_handler.rb +22 -0
  62. data/lib/ims/lti/models/resource_type.rb +6 -0
  63. data/lib/ims/lti/models/rest_service.rb +30 -0
  64. data/lib/ims/lti/models/rest_service_profile.rb +15 -0
  65. data/lib/ims/lti/models/security_contract.rb +21 -0
  66. data/lib/ims/lti/models/security_profile.rb +10 -0
  67. data/lib/ims/lti/models/serializable.rb +12 -0
  68. data/lib/ims/lti/models/service_owner.rb +26 -0
  69. data/lib/ims/lti/models/service_provider.rb +11 -0
  70. data/lib/ims/lti/models/tool_consumer_profile.rb +45 -0
  71. data/lib/ims/lti/models/tool_profile.rb +35 -0
  72. data/lib/ims/lti/models/tool_proxy.rb +21 -0
  73. data/lib/ims/lti/models/tool_setting.rb +12 -0
  74. data/lib/ims/lti/models/tool_setting_container.rb +14 -0
  75. data/lib/ims/lti/models/vendor.rb +28 -0
  76. data/lib/ims/lti/models.rb +38 -0
  77. data/lib/ims/lti/serializers/base.rb +125 -0
  78. data/lib/ims/lti/serializers/membership_service/agent_serializer.rb +5 -0
  79. data/lib/ims/lti/serializers/membership_service/container_serializer.rb +6 -0
  80. data/lib/ims/lti/serializers/membership_service/context_serializer.rb +9 -0
  81. data/lib/ims/lti/serializers/membership_service/lis_membership_container_serializer.rb +9 -0
  82. data/lib/ims/lti/serializers/membership_service/lis_person_serializer.rb +11 -0
  83. data/lib/ims/lti/serializers/membership_service/membership_serializer.rb +7 -0
  84. data/lib/ims/lti/serializers/membership_service/organization_serializer.rb +8 -0
  85. data/lib/ims/lti/serializers/membership_service/page_serializer.rb +10 -0
  86. data/lib/ims/lti/serializers/membership_service/person_serializer.rb +8 -0
  87. data/lib/ims/lti/serializers/membership_service.rb +13 -0
  88. data/lib/ims/lti/serializers.rb +6 -0
  89. data/lib/ims/lti/services/authentication_service.rb +67 -0
  90. data/lib/ims/lti/services/message_authenticator.rb +80 -0
  91. data/lib/ims/lti/services/oauth2_client.rb +18 -0
  92. data/lib/ims/lti/{tool_config.rb → services/tool_config.rb} +26 -34
  93. data/lib/ims/lti/services/tool_consumer_profile_service.rb +16 -0
  94. data/lib/ims/lti/services/tool_proxy_registration_service.rb +84 -0
  95. data/lib/ims/lti/services/tool_proxy_validator.rb +182 -0
  96. data/lib/ims/lti/services.rb +11 -0
  97. data/lib/ims/lti/version.rb +5 -0
  98. data/lib/ims/lti.rb +13 -63
  99. data/lib/ims.rb +4 -1
  100. metadata +266 -44
  101. data/Changelog +0 -54
  102. data/LICENSE +0 -18
  103. data/lib/ims/lti/deprecated_role_checks.rb +0 -52
  104. data/lib/ims/lti/extensions/canvas.rb +0 -122
  105. data/lib/ims/lti/extensions/content.rb +0 -209
  106. data/lib/ims/lti/extensions/outcome_data.rb +0 -216
  107. data/lib/ims/lti/extensions.rb +0 -45
  108. data/lib/ims/lti/launch_params.rb +0 -166
  109. data/lib/ims/lti/outcome_request.rb +0 -225
  110. data/lib/ims/lti/outcome_response.rb +0 -166
  111. data/lib/ims/lti/request_validator.rb +0 -56
  112. data/lib/ims/lti/role_checks.rb +0 -101
  113. data/lib/ims/lti/tool_base.rb +0 -29
  114. data/lib/ims/lti/tool_consumer.rb +0 -86
  115. data/lib/ims/lti/tool_provider.rb +0 -143
metadata CHANGED
@@ -1,101 +1,321 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ims-lti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-07 00:00:00.000000000 Z
11
+ date: 2018-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: builder
14
+ name: addressable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
20
- - - "<"
19
+ version: '2.5'
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '4.0'
22
+ version: 2.5.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.5'
27
30
  - - ">="
28
31
  - !ruby/object:Gem::Version
29
- version: '1.0'
30
- - - "<"
32
+ version: 2.5.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: builder
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.2'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
31
45
  - !ruby/object:Gem::Version
32
- version: '4.0'
46
+ version: '3.2'
33
47
  - !ruby/object:Gem::Dependency
34
- name: oauth
48
+ name: faraday
35
49
  requirement: !ruby/object:Gem::Requirement
36
50
  requirements:
37
- - - ">="
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.8'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
38
59
  - !ruby/object:Gem::Version
39
- version: 0.4.5
40
- - - "<"
60
+ version: '0.8'
61
+ - !ruby/object:Gem::Dependency
62
+ name: faraday_middleware
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
41
66
  - !ruby/object:Gem::Version
42
- version: '0.6'
67
+ version: '0.8'
43
68
  type: :runtime
44
69
  prerelease: false
45
70
  version_requirements: !ruby/object:Gem::Requirement
46
71
  requirements:
47
- - - ">="
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.8'
75
+ - !ruby/object:Gem::Dependency
76
+ name: json-jwt
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
48
80
  - !ruby/object:Gem::Version
49
- version: 0.4.5
50
- - - "<"
81
+ version: '1.7'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
51
87
  - !ruby/object:Gem::Version
52
- version: '0.6'
88
+ version: '1.7'
53
89
  - !ruby/object:Gem::Dependency
54
- name: rspec
90
+ name: simple_oauth
55
91
  requirement: !ruby/object:Gem::Requirement
56
92
  requirements:
57
93
  - - "~>"
58
94
  - !ruby/object:Gem::Version
59
- version: '3.0'
60
- - - ">"
95
+ version: 0.3.1
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
61
101
  - !ruby/object:Gem::Version
62
- version: '3.0'
102
+ version: 0.3.1
103
+ - !ruby/object:Gem::Dependency
104
+ name: byebug
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '9.0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '9.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: guard
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.13'
63
124
  type: :development
64
125
  prerelease: false
65
126
  version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.13'
131
+ - !ruby/object:Gem::Dependency
132
+ name: guard-rspec
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '4.6'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '4.6'
145
+ - !ruby/object:Gem::Dependency
146
+ name: listen
147
+ requirement: !ruby/object:Gem::Requirement
66
148
  requirements:
67
149
  - - "~>"
68
150
  - !ruby/object:Gem::Version
69
151
  version: '3.0'
70
- - - ">"
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
71
157
  - !ruby/object:Gem::Version
72
158
  version: '3.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: pry
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '0.10'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '0.10'
173
+ - !ruby/object:Gem::Dependency
174
+ name: rake
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '12.0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '12.0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: rspec
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '3.2'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '3.2'
201
+ - !ruby/object:Gem::Dependency
202
+ name: timecop
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '0.8'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0.8'
73
215
  description:
74
- email:
216
+ email: opensource@instructure.com
75
217
  executables: []
76
218
  extensions: []
77
- extra_rdoc_files:
78
- - LICENSE
219
+ extra_rdoc_files: []
79
220
  files:
80
- - Changelog
81
- - LICENSE
221
+ - Changelog.txt
222
+ - LICENSE.txt
82
223
  - README.md
83
224
  - lib/ims.rb
225
+ - lib/ims/lis.rb
226
+ - lib/ims/lis/context_type/handles.rb
227
+ - lib/ims/lis/context_type/urns.rb
228
+ - lib/ims/lis/roles/context/handles.rb
229
+ - lib/ims/lis/roles/context/urns.rb
230
+ - lib/ims/lis/roles/institution/handles.rb
231
+ - lib/ims/lis/roles/institution/urns.rb
232
+ - lib/ims/lis/roles/system/handles.rb
233
+ - lib/ims/lis/roles/system/urns.rb
234
+ - lib/ims/lis/statuses/simple_names.rb
235
+ - lib/ims/lis/statuses/uris.rb
84
236
  - lib/ims/lti.rb
85
- - lib/ims/lti/deprecated_role_checks.rb
86
- - lib/ims/lti/extensions.rb
87
- - lib/ims/lti/extensions/canvas.rb
88
- - lib/ims/lti/extensions/content.rb
89
- - lib/ims/lti/extensions/outcome_data.rb
90
- - lib/ims/lti/launch_params.rb
91
- - lib/ims/lti/outcome_request.rb
92
- - lib/ims/lti/outcome_response.rb
93
- - lib/ims/lti/request_validator.rb
94
- - lib/ims/lti/role_checks.rb
95
- - lib/ims/lti/tool_base.rb
96
- - lib/ims/lti/tool_config.rb
97
- - lib/ims/lti/tool_consumer.rb
98
- - lib/ims/lti/tool_provider.rb
237
+ - lib/ims/lti/converters.rb
238
+ - lib/ims/lti/converters/time_json_converter.rb
239
+ - lib/ims/lti/errors.rb
240
+ - lib/ims/lti/errors/authentication_failed_error.rb
241
+ - lib/ims/lti/errors/invalid_lti_config_error.rb
242
+ - lib/ims/lti/errors/invalid_tool_consumer_profile.rb
243
+ - lib/ims/lti/errors/tool_proxy_registration_error.rb
244
+ - lib/ims/lti/models.rb
245
+ - lib/ims/lti/models/base_url_choice.rb
246
+ - lib/ims/lti/models/base_url_selector.rb
247
+ - lib/ims/lti/models/contact.rb
248
+ - lib/ims/lti/models/content_item_container.rb
249
+ - lib/ims/lti/models/content_item_placement.rb
250
+ - lib/ims/lti/models/content_items.rb
251
+ - lib/ims/lti/models/content_items/content_item.rb
252
+ - lib/ims/lti/models/content_items/file_item.rb
253
+ - lib/ims/lti/models/content_items/lti_link_item.rb
254
+ - lib/ims/lti/models/icon_endpoint.rb
255
+ - lib/ims/lti/models/icon_info.rb
256
+ - lib/ims/lti/models/image.rb
257
+ - lib/ims/lti/models/localized_name.rb
258
+ - lib/ims/lti/models/localized_text.rb
259
+ - lib/ims/lti/models/lti_model.rb
260
+ - lib/ims/lti/models/membership_service.rb
261
+ - lib/ims/lti/models/membership_service/agent.rb
262
+ - lib/ims/lti/models/membership_service/container.rb
263
+ - lib/ims/lti/models/membership_service/context.rb
264
+ - lib/ims/lti/models/membership_service/lis_membership_container.rb
265
+ - lib/ims/lti/models/membership_service/lis_person.rb
266
+ - lib/ims/lti/models/membership_service/membership.rb
267
+ - lib/ims/lti/models/membership_service/organization.rb
268
+ - lib/ims/lti/models/membership_service/page.rb
269
+ - lib/ims/lti/models/membership_service/person.rb
270
+ - lib/ims/lti/models/message_handler.rb
271
+ - lib/ims/lti/models/messages.rb
272
+ - lib/ims/lti/models/messages/basic_lti_launch_request.rb
273
+ - lib/ims/lti/models/messages/content_item_selection.rb
274
+ - lib/ims/lti/models/messages/content_item_selection_request.rb
275
+ - lib/ims/lti/models/messages/message.rb
276
+ - lib/ims/lti/models/messages/registration_request.rb
277
+ - lib/ims/lti/models/messages/request_message.rb
278
+ - lib/ims/lti/models/messages/tool_proxy_update_request.rb
279
+ - lib/ims/lti/models/parameter.rb
280
+ - lib/ims/lti/models/product_family.rb
281
+ - lib/ims/lti/models/product_info.rb
282
+ - lib/ims/lti/models/product_instance.rb
283
+ - lib/ims/lti/models/resource_handler.rb
284
+ - lib/ims/lti/models/resource_type.rb
285
+ - lib/ims/lti/models/rest_service.rb
286
+ - lib/ims/lti/models/rest_service_profile.rb
287
+ - lib/ims/lti/models/security_contract.rb
288
+ - lib/ims/lti/models/security_profile.rb
289
+ - lib/ims/lti/models/serializable.rb
290
+ - lib/ims/lti/models/service_owner.rb
291
+ - lib/ims/lti/models/service_provider.rb
292
+ - lib/ims/lti/models/tool_consumer_profile.rb
293
+ - lib/ims/lti/models/tool_profile.rb
294
+ - lib/ims/lti/models/tool_proxy.rb
295
+ - lib/ims/lti/models/tool_setting.rb
296
+ - lib/ims/lti/models/tool_setting_container.rb
297
+ - lib/ims/lti/models/vendor.rb
298
+ - lib/ims/lti/serializers.rb
299
+ - lib/ims/lti/serializers/base.rb
300
+ - lib/ims/lti/serializers/membership_service.rb
301
+ - lib/ims/lti/serializers/membership_service/agent_serializer.rb
302
+ - lib/ims/lti/serializers/membership_service/container_serializer.rb
303
+ - lib/ims/lti/serializers/membership_service/context_serializer.rb
304
+ - lib/ims/lti/serializers/membership_service/lis_membership_container_serializer.rb
305
+ - lib/ims/lti/serializers/membership_service/lis_person_serializer.rb
306
+ - lib/ims/lti/serializers/membership_service/membership_serializer.rb
307
+ - lib/ims/lti/serializers/membership_service/organization_serializer.rb
308
+ - lib/ims/lti/serializers/membership_service/page_serializer.rb
309
+ - lib/ims/lti/serializers/membership_service/person_serializer.rb
310
+ - lib/ims/lti/services.rb
311
+ - lib/ims/lti/services/authentication_service.rb
312
+ - lib/ims/lti/services/message_authenticator.rb
313
+ - lib/ims/lti/services/oauth2_client.rb
314
+ - lib/ims/lti/services/tool_config.rb
315
+ - lib/ims/lti/services/tool_consumer_profile_service.rb
316
+ - lib/ims/lti/services/tool_proxy_registration_service.rb
317
+ - lib/ims/lti/services/tool_proxy_validator.rb
318
+ - lib/ims/lti/version.rb
99
319
  homepage: http://github.com/instructure/ims-lti
100
320
  licenses:
101
321
  - MIT
@@ -115,8 +335,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
335
  - !ruby/object:Gem::Version
116
336
  version: '0'
117
337
  requirements: []
118
- rubygems_version: 3.1.2
338
+ rubyforge_project:
339
+ rubygems_version: 2.5.1
119
340
  signing_key:
120
341
  specification_version: 4
121
342
  summary: Ruby library for creating IMS LTI tool providers and consumers
122
343
  test_files: []
344
+ has_rdoc:
data/Changelog DELETED
@@ -1,54 +0,0 @@
1
- 2020-02-03 Version 1.2.3
2
- * Add support for submittedAt date
3
-
4
- 2017-03-08 Version 1.2.0
5
- * Don't downcase roles
6
-
7
- 2016-10-05 Version 1.1.13
8
- * Fix Oauth::Unauthorized initialization bug
9
- * Relax oauth dependency
10
-
11
- 2016-06-16 Version 1.1.12
12
- * Add support for detecting observer role
13
-
14
- 2015-02-20 Version 1.1.8
15
- * Replace usage of the 'uuid' gem with SecureRandom
16
- * Update the outcome extension doc example
17
-
18
- 2015-01-09 Version 1.1.7
19
- * Add support for new outcome extension resultTotalScore
20
-
21
- 2013-04-24 Version 1.1.3
22
-
23
- * Corrected lti_version launch parameter
24
-
25
- 2012-09-05 Version 1.1.2
26
-
27
- * Added better role checking and convenience methods
28
-
29
- 2012-09-04 Version 1.1.1
30
-
31
- * Added cdata value for outcome data extension
32
-
33
- 2012-08-14 Version 1.1.0
34
-
35
- * Added framework for LTI extensions
36
- * Added LTI outcome data extension
37
- * Fix tests reliant on random ordering
38
- * Add rails 3 note to readme install docs
39
- * Create Changelog
40
-
41
-
42
- 2012-03-14 Version 1.0.2
43
-
44
- * Refactor OAuth validation into its own module
45
-
46
-
47
- 2012-03-13 Version 1.0.1
48
-
49
- * Add gem dependencies to gemspec
50
-
51
-
52
- 2012-03-11 Version 1.0.0
53
-
54
- * Publish fully functional and operational IMS LTI library
data/LICENSE DELETED
@@ -1,18 +0,0 @@
1
- Copyright (c) 2012 Instructure
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of
4
- this software and associated documentation files (the "Software"), to deal in
5
- the Software without restriction, including without limitation the rights to use,
6
- copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
7
- Software, and to permit persons to whom the Software is furnished to do so,
8
- subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in all
11
- copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,52 +0,0 @@
1
- # These are here for backwards-compatibility
2
- # But they are deprecated and the new ones in
3
- # role_checks.rb should be used
4
- module IMS::LTI
5
- module DeprecatedRoleChecks
6
- # Check whether the Launch Parameters have a role
7
- def has_role?(role)
8
- role = role.downcase
9
- @roles && @roles.any?{|r| r.downcase.index(role)}
10
- end
11
-
12
- # Convenience method for checking if the user has 'learner' or 'student' role
13
- def student?
14
- has_role?('learner') || has_role?('student')
15
- end
16
-
17
- # Convenience method for checking if the user has 'instructor' or 'faculty' or 'staff' role
18
- def instructor?
19
- has_role?('instructor') || has_role?('faculty') || has_role?('staff')
20
- end
21
-
22
- # Convenience method for checking if the user has 'contentdeveloper' role
23
- def content_developer?
24
- has_role?('ContentDeveloper')
25
- end
26
-
27
- # Convenience method for checking if the user has 'Member' role
28
- def member?
29
- has_role?('Member')
30
- end
31
-
32
- # Convenience method for checking if the user has 'Manager' role
33
- def manager?
34
- has_role?('Manager')
35
- end
36
-
37
- # Convenience method for checking if the user has 'Mentor' role
38
- def mentor?
39
- has_role?('Mentor')
40
- end
41
-
42
- # Convenience method for checking if the user has 'administrator' role
43
- def admin?
44
- has_role?('administrator')
45
- end
46
-
47
- # Convenience method for checking if the user has 'TeachingAssistant' role
48
- def ta?
49
- has_role?('TeachingAssistant')
50
- end
51
- end
52
- end
@@ -1,122 +0,0 @@
1
- module IMS::LTI
2
- module Extensions
3
- # Module that adds Canvas specific LTI extensions
4
- #
5
- # It adds convenience methods for generating common canvas use case LTI configurations
6
- #
7
- # == Usage
8
- # To generate an XML configuration:
9
- #
10
- # # Create a config object and set some options
11
- # tc = IMS::LTI::ToolConfig.new(:title => "Example Sinatra Tool Provider", :launch_url => url)
12
- # tc.description = "This example LTI Tool Provider supports LIS Outcome pass-back."
13
- #
14
- # # Extend the Canvas Tool config and add canvas related extensions
15
- # tc.extend IMS::LTI::Extensions::Canvas::ToolConfig
16
- # tc.homework_submission! 'http://someplace.com/homework', 'Find Homework'
17
- #
18
- # # generate the XML
19
- # tc.to_xml
20
- #
21
- # Or to create a config object from an XML String:
22
- #
23
- # tc = IMS::LTI::ToolConfig.create_from_xml(xml)
24
-
25
- module Canvas
26
- module ToolConfig
27
- PLATFORM = 'canvas.instructure.com'
28
-
29
- # Canvas extension defaults
30
- # These properties will cascade down to any options that are configured
31
- def set_canvas_ext_param(key, value)
32
- set_ext_param(PLATFORM, key, value)
33
- end
34
-
35
- def get_canvas_param(param_key)
36
- get_ext_param PLATFORM, param_key
37
- end
38
-
39
- def canvas_privacy_public!()
40
- set_canvas_ext_param(:privacy_level, 'public')
41
- end
42
-
43
- def canvas_privacy_name_only!()
44
- set_canvas_ext_param(:privacy_level, 'name_only')
45
- end
46
-
47
- def canvas_privacy_anonymous!()
48
- set_canvas_ext_param(:privacy_level, 'anonymous')
49
- end
50
-
51
- def canvas_domain!(domain)
52
- set_canvas_ext_param(:domain, domain)
53
- end
54
-
55
- def canvas_text!(text)
56
- set_canvas_ext_param(:text, text)
57
- end
58
-
59
- def canvas_icon_url!(icon_url)
60
- set_canvas_ext_param(:icon_url, icon_url)
61
- end
62
-
63
- def canvas_tool_id!(tool_id)
64
- set_canvas_ext_param(:tool_id, tool_id)
65
- end
66
-
67
- def canvas_selector_dimensions!(width, height)
68
- set_canvas_ext_param(:selection_width, width)
69
- set_canvas_ext_param(:selection_height, height)
70
- end
71
-
72
- # Canvas options
73
- # These configure canvas to expose the tool in various locations. Any properties that are set
74
- # at this level will override the defaults for this launch of the tool
75
-
76
- # Enables homework submissions via the tool
77
- # Valid properties are url, text, selection_width, selection_height, enabled
78
- def canvas_homework_submission!(params = {})
79
- set_canvas_ext_param(:homework_submission, params)
80
- end
81
-
82
- # Adds the tool to canvas' rich text editor
83
- # Valid properties are url, icon_url, text, selection_width, selection_height, enabled
84
- def canvas_editor_button!(params = {})
85
- set_canvas_ext_param(:editor_button, params)
86
- end
87
-
88
- # Adds the tool to canvas' resource selector
89
- # Valid properties are url, text, selection_width, selection_height, enabled
90
- def canvas_resource_selection!(params = {})
91
- set_canvas_ext_param(:resource_selection, params)
92
- end
93
-
94
- # Adds the tool to account level navigation in canvas
95
- # Valid properties are url, text, enabled
96
- def canvas_account_navigation!(params = {})
97
- set_canvas_ext_param(:account_navigation, params)
98
- end
99
-
100
- # Adds the tool to course level navigation in canvas
101
- # Valid properties are url, text, visibility, default, enabled
102
- # Visibility describes who will see the navigation element. Possible values are "admins", "members", and nil
103
- # Default determines if it is on or off by default. Possible values are "admins", "members", and nil
104
- def canvas_course_navigation!(params = {})
105
- set_canvas_ext_param(:course_navigation, params)
106
- end
107
-
108
- # Adds the tool to user level navigation in canvas
109
- # Valid properties are url, text, enabled
110
- def canvas_user_navigation!(params = {})
111
- set_canvas_ext_param(:user_navigation, params)
112
- end
113
-
114
- # Adds canvas environment configurations options
115
- # Valid properties are launch_url, domain, test_launch_url, test_domain, beta_launch_url, beta_domain
116
- def canvas_environments!(params = {})
117
- set_canvas_ext_param(:environments, params)
118
- end
119
- end
120
- end
121
- end
122
- end