Class: TreeSerializer
- Inherits:
-
Object
- Object
- TreeSerializer
- Defined in:
- lib/tree_serializer.rb
Instance Attribute Summary collapse
-
#dependency_tree ⇒ Object
readonly
Returns the value of attribute dependency_tree.
Instance Method Summary collapse
-
#initialize(dependency_tree) ⇒ TreeSerializer
constructor
A new instance of TreeSerializer.
- #serialize(output_format) ⇒ String
- #serialize_to_dot(object_to_serialize) ⇒ Object
- #serialize_to_json(object_to_serialize) ⇒ Object
- #serialize_to_json_pretty(object_to_serialize) ⇒ Object
- #serialize_to_json_var(object_to_serialize) ⇒ Object
- #serialize_to_yaml(object_to_serialize) ⇒ Object
Constructor Details
#initialize(dependency_tree) ⇒ TreeSerializer
5 6 7 |
# File 'lib/tree_serializer.rb', line 5 def initialize(dependency_tree) @dependency_tree = dependency_tree end |
Instance Attribute Details
#dependency_tree ⇒ Object (readonly)
Returns the value of attribute dependency_tree.
2 3 4 |
# File 'lib/tree_serializer.rb', line 2 def dependency_tree @dependency_tree end |
Instance Method Details
#serialize(output_format) ⇒ String
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/tree_serializer.rb', line 11 def serialize(output_format) object_to_serialize = {} object_to_serialize[:links] = @dependency_tree.links_with_types object_to_serialize[:links_count] = @dependency_tree.links_count object_to_serialize[:objects] = Hash[ @dependency_tree.objects.map do |o| [o, { type: @dependency_tree.type(o) }] end ] case output_format when 'dot' serialize_to_dot(object_to_serialize) when 'json-pretty' serialize_to_json_pretty(object_to_serialize) when 'json' serialize_to_json(object_to_serialize) when 'json-var' serialize_to_json_var(object_to_serialize) when 'yaml' serialize_to_yaml(object_to_serialize) else raise end end |
#serialize_to_dot(object_to_serialize) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/tree_serializer.rb', line 54 def serialize_to_dot(object_to_serialize) indent = "\t" s = "digraph dependencies {\n#{indent}node [fontname=monospace, fontsize=9, shape=box, style=rounded]\n" object_to_serialize[:links].each do |link| s += "#{indent}\"#{link['source']}\" -> \"#{link['dest']}\"\n" end s += "}\n" s end |
#serialize_to_json(object_to_serialize) ⇒ Object
46 47 48 |
# File 'lib/tree_serializer.rb', line 46 def serialize_to_json(object_to_serialize) object_to_serialize.to_json end |
#serialize_to_json_pretty(object_to_serialize) ⇒ Object
50 51 52 |
# File 'lib/tree_serializer.rb', line 50 def serialize_to_json_pretty(object_to_serialize) JSON.pretty_generate(object_to_serialize) end |
#serialize_to_json_var(object_to_serialize) ⇒ Object
42 43 44 |
# File 'lib/tree_serializer.rb', line 42 def serialize_to_json_var(object_to_serialize) 'var dependencies = ' + object_to_serialize.to_json end |
#serialize_to_yaml(object_to_serialize) ⇒ Object
38 39 40 |
# File 'lib/tree_serializer.rb', line 38 def serialize_to_yaml(object_to_serialize) object_to_serialize.to_yaml end |