ims-lti 1.1.9 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ims/lti/tool_config.rb +24 -18
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60aadf51a888ea3b20d4e01db315fa516b2391d5
4
- data.tar.gz: a2de5ab6dc06de39360cc798d1eb084390cde810
3
+ metadata.gz: c7f1feeb8de427e084dd4e91ec1cd22eb5848dc0
4
+ data.tar.gz: 54f156903788d5f10a763b6409bc7b443c8cec8c
5
5
  SHA512:
6
- metadata.gz: 0b81bc2d944853f4aea17886035dd9c157fa5f98de1b33f6e24f4bc0b515ab3504df6542bdafe7345153816b008ece1ac92cf40686bb672e4afcd1acc46fa90c
7
- data.tar.gz: c57d082100c2493e07d7d5a426303a6f7ea541f4b57b303febba34513ada770d7d37e639b78f241b31ef4703f1a331c4d04274ae111ac811819432a9fc83d18c
6
+ metadata.gz: fb94e636da4a9b07e6be2c7ed528b8bb367ff33a2726580f0b085ba0af9547d534d77ca2bbc2375bd782db116408ddda1ac3ac936825f018aa141007812a0b8a
7
+ data.tar.gz: 3e03fe6b42605945b1b08bf6dc5e95bab898414505ac58ba841bd1c6370fb226971d094774541f76f8189e4636c28377d6006e42fe64dc8fca3f455732ce1cfa
@@ -115,13 +115,7 @@ module IMS::LTI
115
115
  platform = vendor_ext_node.attributes['platform']
116
116
  properties = {}
117
117
  set_properties(properties, vendor_ext_node)
118
- REXML::XPath.each(vendor_ext_node, 'lticm:options', LTI_NAMESPACES) do |options_node|
119
- opt_name = options_node.attributes['name']
120
- options = {}
121
- set_properties(options, options_node)
122
- properties[opt_name] = options
123
- end
124
-
118
+ set_options(properties, vendor_ext_node)
125
119
  self.set_ext_params(platform, properties)
126
120
  end
127
121
 
@@ -175,17 +169,7 @@ module IMS::LTI
175
169
  ext_params = @extensions[ext_platform]
176
170
  blti_node.blti(:extensions, :platform => ext_platform) do |ext_node|
177
171
  ext_params.keys.sort.each do |key|
178
- val = ext_params[key]
179
- if val.is_a?(Hash)
180
- ext_node.lticm(:options, :name => key) do |type_node|
181
- val.keys.sort.each do |p_key|
182
- p_val = val[p_key]
183
- type_node.lticm :property, p_val, 'name' => p_key
184
- end
185
- end
186
- else
187
- ext_node.lticm :property, val, 'name' => key
188
- end
172
+ nest_xml(ext_node, key, ext_params[key])
189
173
  end
190
174
  end
191
175
  end
@@ -199,6 +183,18 @@ module IMS::LTI
199
183
 
200
184
  private
201
185
 
186
+ def nest_xml(ext_node, key, value)
187
+ if value.is_a?(Hash)
188
+ ext_node.lticm(:options, :name => key) do |type_node|
189
+ value.keys.sort.each do |sub_key|
190
+ nest_xml(type_node, sub_key, value[sub_key])
191
+ end
192
+ end
193
+ else
194
+ ext_node.lticm :property, value, 'name' => key
195
+ end
196
+ end
197
+
202
198
  def get_node_text(node, path)
203
199
  if val = REXML::XPath.first(node, path, LTI_NAMESPACES)
204
200
  val.text
@@ -221,5 +217,15 @@ module IMS::LTI
221
217
  end
222
218
  end
223
219
 
220
+ def set_options(hash, node)
221
+ REXML::XPath.each(node, 'lticm:options', LTI_NAMESPACES) do |options_node|
222
+ opt_name = options_node.attributes['name']
223
+ options = {}
224
+ set_properties(options, options_node)
225
+ set_options(options, options_node)
226
+ hash[opt_name] = options
227
+ end
228
+ end
229
+
224
230
  end
225
231
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ims-lti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.9
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure