ims-lti 2.0.0.beta.33 → 2.0.0.beta.34

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d4f7ca9f95d162869f61b7be229823b6527794b2
4
- data.tar.gz: 2c5c99b0aae8dcff4d0b7f53b458c82d216827b1
3
+ metadata.gz: a3580b05cd173bd267f4ce2af4d46521d9afc29a
4
+ data.tar.gz: 731cc56752b637a036a3bb38a261b7fc7d4be577
5
5
  SHA512:
6
- metadata.gz: 5de3464ec8244a7219970c5997f0e947a075c4b946f336ac621e56e8fdfc85b2437f4236c731c3bf1fe84f82069973fc3e289a4970a8f838adfc01007b5809f6
7
- data.tar.gz: 80ae95913258f6169702a55fb5c9b5778523d4ca67d2c80034bf3c8379a35e5d8d290cf8c7b7cb3bb4721c00f189c3585000ec87acc5fbf618d3480678ccb234
6
+ metadata.gz: 8a8dc1aa1542a813c11ebb940b2be6ddcb017a84fd0014c5d00d58ca82bdfd6752972fa7405adf3091517dc4300d31926748733bada9134690d37906f41351f0
7
+ data.tar.gz: 544957240d256b9c6a96963bbad5a588d52d6dd8ab9bdcfab03dceacec4e455a6e1697a547b7adc764ccdbf64cc077bdeafedfd590bfd8d8c29bc238fb0aa965
@@ -87,7 +87,8 @@ module IMS::LTI::Models
87
87
  end
88
88
 
89
89
  def from_json(json)
90
- data = json.is_a?(String) ? JSON.parse(json) : json
90
+ # JSON.parse(json.to_json) is a quick and dirty way to clone the json object passed in
91
+ data = json.is_a?(String) ? JSON.parse(json) : JSON.parse(json.to_json)
91
92
  if data.is_a? Array
92
93
  data.map { |hash| self.class.from_json(hash.to_json) }
93
94
  else
@@ -210,4 +211,4 @@ module IMS::LTI::Models
210
211
  end
211
212
 
212
213
  end
213
- end
214
+ end
@@ -16,25 +16,34 @@ module IMS::LTI::Services
16
16
  tool_consumer_profile.services_offered.map(&:profile)
17
17
  end
18
18
 
19
- def register_tool_proxy(tool_proxy)
19
+ def register_tool_proxy(tool_proxy, reregistration_confirm_url = nil, shared_secret = nil)
20
20
  service = tool_consumer_profile.services_offered.find { |s| s.formats.include?('application/vnd.ims.lti.v2.toolproxy+json') && s.actions.include?('POST') }
21
21
 
22
22
  SimpleOAuth::Header::ATTRIBUTE_KEYS << :body_hash unless SimpleOAuth::Header::ATTRIBUTE_KEYS.include? :body_hash
23
23
  tool_proxy_json = tool_proxy.to_json
24
24
  body_hash = Digest::SHA1.base64digest tool_proxy_json
25
-
25
+
26
+ if reregistration?
27
+ consumer_key = tool_proxy.tool_proxy_guid
28
+ consumer_secret = shared_secret
29
+ else
30
+ consumer_key = @registration_request.reg_key
31
+ consumer_secret = @registration_request.reg_password
32
+ end
33
+
26
34
  conn = Faraday.new do |conn|
27
- conn.request :oauth, {:consumer_key => @registration_request.reg_key, :consumer_secret => @registration_request.reg_password, :body_hash => body_hash}
35
+ conn.request :oauth, {:consumer_key => consumer_key, :consumer_secret => consumer_secret, :body_hash => body_hash}
28
36
  conn.adapter :net_http
29
37
  end
30
38
 
31
39
  response = conn.post do |req|
32
40
  req.url service.endpoint
33
41
  req.headers['Content-Type'] = 'application/vnd.ims.lti.v2.toolproxy+json'
42
+ req.headers['VND-IMS-CONFIRM-URL'] = reregistration_confirm_url if reregistration_confirm_url
34
43
  req.body = tool_proxy_json
35
44
  end
36
45
 
37
- if response.status == 201
46
+ if response.status == 201 || (response.status == 200 && reregistration?)
38
47
  IMS::LTI::Models::ToolProxy.new.from_json(tool_proxy.to_json).from_json(response.body)
39
48
  else
40
49
  raise IMS::LTI::Errors::ToolProxyRegistrationError.new(response.status, response.body)
@@ -66,6 +75,9 @@ module IMS::LTI::Services
66
75
  orig_capabilities - capabilites
67
76
  end
68
77
 
78
+ def reregistration?
79
+ @registration_request.is_a?(IMS::LTI::Models::Messages::ToolProxyReregistrationRequest)
80
+ end
69
81
 
70
82
 
71
83
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ims-lti
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta.33
4
+ version: 2.0.0.beta.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-09 00:00:00.000000000 Z
11
+ date: 2015-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple_oauth
@@ -28,112 +28,112 @@ dependencies:
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faraday_middleware
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.8'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: builder
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 10.4.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 10.4.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: 3.2.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 3.2.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: guard
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 2.13.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 2.13.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: guard-rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 4.6.4
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 4.6.4
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: pry
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 0.10.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.10.1
139
139
  description:
@@ -142,21 +142,27 @@ executables: []
142
142
  extensions: []
143
143
  extra_rdoc_files: []
144
144
  files:
145
- - lib/ims/lti/converters/time_json_converter.rb
145
+ - Changelog.txt
146
+ - LICENSE.txt
147
+ - README.md
148
+ - lib/ims.rb
149
+ - lib/ims/lti.rb
146
150
  - lib/ims/lti/converters.rb
151
+ - lib/ims/lti/converters/time_json_converter.rb
152
+ - lib/ims/lti/errors.rb
147
153
  - lib/ims/lti/errors/invalid_lti_config_error.rb
148
154
  - lib/ims/lti/errors/invalid_tool_consumer_profile.rb
149
155
  - lib/ims/lti/errors/tool_proxy_registration_error.rb
150
- - lib/ims/lti/errors.rb
156
+ - lib/ims/lti/models.rb
151
157
  - lib/ims/lti/models/base_url_choice.rb
152
158
  - lib/ims/lti/models/base_url_selector.rb
153
159
  - lib/ims/lti/models/contact.rb
154
160
  - lib/ims/lti/models/content_item_container.rb
155
161
  - lib/ims/lti/models/content_item_placement.rb
162
+ - lib/ims/lti/models/content_items.rb
156
163
  - lib/ims/lti/models/content_items/content_item.rb
157
164
  - lib/ims/lti/models/content_items/file_item.rb
158
165
  - lib/ims/lti/models/content_items/lti_link_item.rb
159
- - lib/ims/lti/models/content_items.rb
160
166
  - lib/ims/lti/models/icon_endpoint.rb
161
167
  - lib/ims/lti/models/icon_info.rb
162
168
  - lib/ims/lti/models/image.rb
@@ -164,6 +170,7 @@ files:
164
170
  - lib/ims/lti/models/localized_text.rb
165
171
  - lib/ims/lti/models/lti_model.rb
166
172
  - lib/ims/lti/models/message_handler.rb
173
+ - lib/ims/lti/models/messages.rb
167
174
  - lib/ims/lti/models/messages/basic_lti_launch_request.rb
168
175
  - lib/ims/lti/models/messages/content_item_selection.rb
169
176
  - lib/ims/lti/models/messages/content_item_selection_request.rb
@@ -171,7 +178,6 @@ files:
171
178
  - lib/ims/lti/models/messages/registration_request.rb
172
179
  - lib/ims/lti/models/messages/request_message.rb
173
180
  - lib/ims/lti/models/messages/tool_proxy_reregistration_request.rb
174
- - lib/ims/lti/models/messages.rb
175
181
  - lib/ims/lti/models/parameter.rb
176
182
  - lib/ims/lti/models/product_family.rb
177
183
  - lib/ims/lti/models/product_info.rb
@@ -189,17 +195,11 @@ files:
189
195
  - lib/ims/lti/models/tool_setting.rb
190
196
  - lib/ims/lti/models/tool_setting_container.rb
191
197
  - lib/ims/lti/models/vendor.rb
192
- - lib/ims/lti/models.rb
198
+ - lib/ims/lti/services.rb
193
199
  - lib/ims/lti/services/tool_config.rb
194
200
  - lib/ims/lti/services/tool_proxy_registration_service.rb
195
201
  - lib/ims/lti/services/tool_proxy_validator.rb
196
- - lib/ims/lti/services.rb
197
202
  - lib/ims/lti/version.rb
198
- - lib/ims/lti.rb
199
- - lib/ims.rb
200
- - LICENSE.txt
201
- - README.md
202
- - Changelog.txt
203
203
  homepage: http://github.com/instructure/ims-lti
204
204
  licenses:
205
205
  - MIT
@@ -210,17 +210,17 @@ require_paths:
210
210
  - lib
211
211
  required_ruby_version: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - '>='
213
+ - - ">="
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  required_rubygems_version: !ruby/object:Gem::Requirement
217
217
  requirements:
218
- - - '>'
218
+ - - ">"
219
219
  - !ruby/object:Gem::Version
220
220
  version: 1.3.1
221
221
  requirements: []
222
222
  rubyforge_project:
223
- rubygems_version: 2.0.14
223
+ rubygems_version: 2.4.5.1
224
224
  signing_key:
225
225
  specification_version: 4
226
226
  summary: Ruby library for creating IMS LTI tool providers and consumers