@@ -5,27 +5,57 @@ class Formater
5
5
def initialize ( )
6
6
end
7
7
8
+ def format_simple ( v , indent = '' , do_indent = false , comma = '' )
9
+ str = ''
10
+ str << indent if do_indent
11
+ v = "\" #{ v } \" " unless [ Fixnum , TrueClass , FalseClass ] . include? ( v . class )
12
+ str << v . to_s << comma << "\n "
13
+ end
14
+
15
+ def format_array ( v , indent = '' , do_indent = false , comma = '' )
16
+ str = ''
17
+ str << indent if do_indent
18
+ str << '[' << "\n "
19
+ v . each do |val |
20
+ str << format_value ( val , "#{ indent } " , true , ',' )
21
+ end
22
+ str << "\t #{ indent } ]" << "\n " << comma
23
+ end
24
+
25
+ def format_hash ( v , indent = '' , do_indent = false , comma = '' )
26
+ str = ''
27
+ str << indent if do_indent
28
+ str << '{' << "\n "
29
+ v . each do |key , val |
30
+ str << "\t #{ indent } #{ key } => "
31
+ str << format_value ( val , "#{ indent } " , true , ',' , key )
32
+ end
33
+ str << "\t #{ indent } }" << "\n " << comma
34
+ end
35
+
36
+ def format_value ( v , indent = '' , do_indent = false , comma = '' , k = nil )
37
+ if v . is_a? ( Array )
38
+ format_array ( v , indent , do_indent , comma )
39
+ elsif v . is_a? ( Hash )
40
+ format_hash ( v , indent , do_indent , comma )
41
+ else
42
+ v = v [ :checksum ] if ( k == :content && v . is_a? ( Hash ) )
43
+ format_simple ( v , indent , do_indent , comma )
44
+ end
45
+ end
46
+
8
47
# creates a string representation of a resource that looks like Puppet code
9
48
def resource_to_string ( resource )
10
49
str = ''
11
50
str << "\t " + resource [ :type ] . downcase << '{"' << resource [ :title ] . to_s << '":' << "\n "
12
51
params = Hash [ ( resource [ :parameters ] . sort_by { |k , v | k } ) ]
13
52
params . each_pair do |k , v |
14
- if v . is_a? ( Array )
15
- indent = " " * k . to_s . size
16
- str << "\t #{ k } => [" << "\n "
17
- v . each do |val |
18
- str << "\t #{ indent } #{ val } ," << "\n "
19
- end
20
- str << "\t #{ indent } ]" << "\n "
21
- else
22
- if k == :content
23
- v = v [ :checksum ]
24
- end
25
- str << "\t #{ k } => #{ v } " << "\n "
26
- end
53
+ str << "\t #{ k } => "
54
+ indent = " " * k . to_s . size
55
+ str << format_value ( v , indent , false , '' , k )
27
56
end
28
57
str << "\t }\n "
58
+ str
29
59
end
30
60
31
61
def node_summary_header ( node , summary , key )
0 commit comments