ims-lti 1.1.9 → 1.1.10

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 (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