Class: Serialbench::Serializers::Xml::OxSerializer

Inherits:
BaseXmlSerializer show all
Defined in:
lib/serialbench/serializers/xml/ox_serializer.rb

Defined Under Namespace

Classes: StreamingHandler

Instance Method Summary collapse

Methods inherited from BaseXmlSerializer

#available?, #features, format, #generate_xml, #parse_dom, #parse_sax, #supports_generation?, #supports_namespaces?, #supports_validation?, #supports_xpath?

Methods inherited from BaseSerializer

#get_version, #initialize, #require_library, #stream_parse

Constructor Details

This class inherits a constructor from Serialbench::Serializers::BaseSerializer

Instance Method Details

#generate(data) ⇒ Object



18
19
20
21
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 18

def generate(data)
  require 'ox'
  Ox.dump(data, indent: 2)
end

#library_require_nameObject



43
44
45
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 43

def library_require_name
  'ox'
end

#nameObject



9
10
11
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 9

def name
  'ox'
end

#parse(xml_string) ⇒ Object



13
14
15
16
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 13

def parse(xml_string)
  require 'ox'
  Ox.parse(xml_string)
end

#parse_streaming(xml_string, &block) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 23

def parse_streaming(xml_string, &block)
  require 'ox'
  require 'stringio'

  handler = StreamingHandler.new(&block)
  Ox.sax_parse(handler, StringIO.new(xml_string))
  handler.elements_processed
end

#supports_streaming?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 32

def supports_streaming?
  true
end

#versionObject



36
37
38
39
40
41
# File 'lib/serialbench/serializers/xml/ox_serializer.rb', line 36

def version
  return 'unknown' unless available?

  require 'ox'
  Ox::VERSION
end