Class: FFIDB::Exporters::JSON
Overview
Code generator for the JSON data interchange language.
Instance Attribute Summary
#options
Instance Method Summary
collapse
#close, #debug?, #dlopen_paths_for, #emit, #export_header, for, #header?, #initialize, #verbose?
Instance Method Details
#begin ⇒ Object
11
12
13
14
|
# File 'lib/ffidb/exporters/json.rb', line 11
def begin
@json = {}
end
|
#begin_library(library) ⇒ Object
16
17
18
19
|
# File 'lib/ffidb/exporters/json.rb', line 16
def begin_library(library)
@library = library
@json[@library&.name] ||= {}
end
|
#export_symbol(symbol, **kwargs) ⇒ Object
Also known as:
export_typedef, export_enum, export_struct, export_union, export_function
21
22
23
|
# File 'lib/ffidb/exporters/json.rb', line 21
def export_symbol(symbol, **kwargs)
@json[@library&.name][symbol.name] = {kind: symbol.kind.to_s}.merge!(symbol.to_h)
end
|
#finish ⇒ Object
34
35
36
|
# File 'lib/ffidb/exporters/json.rb', line 34
def finish
puts ::JSON.pretty_generate(@json)
end
|
#finish_library ⇒ Object
30
31
32
|
# File 'lib/ffidb/exporters/json.rb', line 30
def finish_library
@library = nil
end
|