Skip to content

Commit

Permalink
new deserializer: reformat for coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
rlane committed Nov 6, 2011
1 parent f68caf0 commit a10bc92
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 11 deletions.
6 changes: 6 additions & 0 deletions devel/benchmark.rb
@@ -1,4 +1,10 @@
#!/usr/bin/env ruby

if ENV['RBVMOMI_COVERAGE'] == '1'
require 'simplecov'
SimpleCov.start
end

require 'rbvmomi'
require 'rbvmomi/deserialization'
require 'benchmark'
Expand Down
32 changes: 21 additions & 11 deletions lib/rbvmomi/deserialization.rb
Expand Up @@ -30,13 +30,20 @@ def deserialize node, type=nil

if BUILTIN.member? type
case type
when 'xsd:string', 'PropertyPath' then node.content
when 'xsd:boolean' then node.content == '1'
when 'xsd:int', 'xsd:long' then node.content.to_i
when 'xsd:float' then node.content.to_f
when 'xsd:dateTime' then leaf_date node
when 'xsd:base64Binary' then leaf_binary node
when 'KeyValue' then leaf_keyvalue node
when 'xsd:string', 'PropertyPath'
node.content
when 'xsd:boolean'
node.content == '1'
when 'xsd:int', 'xsd:long'
node.content.to_i
when 'xsd:float'
node.content.to_f
when 'xsd:dateTime'
leaf_date node
when 'xsd:base64Binary'
leaf_binary node
when 'KeyValue'
leaf_keyvalue node
else fail
end
else
Expand All @@ -46,10 +53,13 @@ def deserialize node, type=nil
end

klass = @loader.get(type) or fail "no such type #{type}"
if klass < VIM::DataObject then traverse_data node, klass
elsif klass < RbVmomi::BasicTypes::Enum then node.content
elsif klass < VIM::ManagedObject then traverse_managed node, klass
else fail "unexpected class #{klass}"
if klass < VIM::DataObject then
traverse_data node, klass
elsif klass < RbVmomi::BasicTypes::Enum
node.content
elsif klass < VIM::ManagedObject
traverse_managed node, klass
else fail
end
end
end
Expand Down

0 comments on commit a10bc92

Please sign in to comment.