Module: Nexpose::JsonSerializer

Included in:
Alert, GlobalBlackout, ScanFilter, ScheduledBackup, ScheduledMaintenance, Site, VulnFilter
Defined in:
lib/nexpose/json_serializer.rb

Constant Summary collapse

@@namespace =
'Nexpose'

Instance Method Summary collapse

Instance Method Details

#deserialize(data) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/nexpose/json_serializer.rb', line 5

def deserialize(data)
  data.each do |key, value|
    if respond_to?(key)
      property = value
      if value.respond_to? :each
        obj = resolve_type(key)
        unless obj.nil?
          if value.is_a?(Array)
            property = value.map { |dv| ((dv.respond_to? :each) ? create_object(obj, dv).deserialize(dv) : dv) }
          else
            property = create_object(obj, value).deserialize(value)
          end
        end
      elsif value.is_a?(String) && value.match(/^\d{8}T\d{6}\.\d{3}/)
        property = ISO8601.to_time(value)
      end
      instance_variable_set("@#{key}", property)
    end
  end
  self
end

#serializeObject



27
28
29
30
# File 'lib/nexpose/json_serializer.rb', line 27

def serialize
  hash = to_hash(Hash.new)
  JSON.generate(hash) unless hash.nil?
end

#to_hash(hash) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/nexpose/json_serializer.rb', line 32

def to_hash(hash)
  self.instance_variables.each do |m|
    value = self.instance_variable_get(m)
    hash[m.to_s.delete('@')] = do_hash(value)
  end
  hash
end