Class: Opencdd::Exporters::Json
Direct Known Subclasses
Yaml
Instance Attribute Summary collapse
Attributes inherited from Visitor
#seen
Instance Method Summary
collapse
Methods inherited from Visitor
#each_sorted, #reset!, #visit_classes, #visit_properties, #visit_relations, #visit_units, #visit_value_lists, #visit_value_terms, #visit_view_controls
Constructor Details
#initialize ⇒ Json
Returns a new instance of Json.
10
11
12
13
|
# File 'lib/opencdd/exporters/json.rb', line 10
def initialize
super
@nodes = []
end
|
Instance Attribute Details
#nodes ⇒ Object
Returns the value of attribute nodes.
8
9
10
|
# File 'lib/opencdd/exporters/json.rb', line 8
def nodes
@nodes
end
|
Instance Method Details
#to_json(database, pretty: true) ⇒ Object
15
16
17
18
19
20
|
# File 'lib/opencdd/exporters/json.rb', line 15
def to_json(database, pretty: true)
reset!
@nodes.clear
visit_database(database)
pretty ? JSON.pretty_generate(@nodes) : JSON.generate(@nodes)
end
|
#visit_class(klass) ⇒ Object
27
28
29
30
|
# File 'lib/opencdd/exporters/json.rb', line 27
def visit_class(klass)
@nodes << class_node(klass)
super
end
|
#visit_database(database) ⇒ Object
22
23
24
25
|
# File 'lib/opencdd/exporters/json.rb', line 22
def visit_database(database)
@database = database
super
end
|
#visit_property(prop) ⇒ Object
32
33
34
|
# File 'lib/opencdd/exporters/json.rb', line 32
def visit_property(prop)
@nodes << property_node(prop)
end
|
#visit_relation(rel) ⇒ Object
48
49
50
|
# File 'lib/opencdd/exporters/json.rb', line 48
def visit_relation(rel)
@nodes << relation_node(rel)
end
|
#visit_unit(unit) ⇒ Object
36
37
38
|
# File 'lib/opencdd/exporters/json.rb', line 36
def visit_unit(unit)
@nodes << unit_node(unit)
end
|
#visit_value_list(vl) ⇒ Object
40
41
42
|
# File 'lib/opencdd/exporters/json.rb', line 40
def visit_value_list(vl)
@nodes << value_list_node(vl)
end
|
#visit_value_term(vt) ⇒ Object
44
45
46
|
# File 'lib/opencdd/exporters/json.rb', line 44
def visit_value_term(vt)
@nodes << value_term_node(vt)
end
|
#visit_view_control(vc) ⇒ Object
52
53
54
|
# File 'lib/opencdd/exporters/json.rb', line 52
def visit_view_control(vc)
@nodes << view_control_node(vc)
end
|