@@ -11,10 +11,10 @@ class HashConverter
11
11
12
12
attr_reader :extras_generator
13
13
14
- def initialize ( form_name , date_strftime , extras_redesign = false , start_page = 1 )
14
+ def initialize ( date_strftime , extras_generator )
15
15
@pdftk_form = { }
16
16
@date_strftime = date_strftime
17
- @extras_generator = ExtrasGenerator . new ( form_name : , extras_redesign : , start_page : )
17
+ @extras_generator = extras_generator
18
18
end
19
19
20
20
def convert_value ( v , key_data , is_overflow = false )
@@ -63,7 +63,7 @@ def overflow?(key_data, value, from_array_overflow = false)
63
63
limit . present? && value . size > limit
64
64
end
65
65
66
- def add_to_extras ( key_data , v , i )
66
+ def add_to_extras ( key_data , v , i , top_level_key )
67
67
return if v . blank?
68
68
return if key_data . try ( :[] , :question_text ) . blank?
69
69
@@ -73,25 +73,25 @@ def add_to_extras(key_data, v, i)
73
73
@extras_generator . add_text (
74
74
v ,
75
75
key_data . slice ( :question_num , :question_suffix , :question_text ) . merge (
76
- i :
76
+ i :, top_level_key :
77
77
)
78
78
)
79
79
end
80
80
81
- def add_array_to_extras ( arr , pdftk_keys )
81
+ def add_array_to_extras ( arr , pdftk_keys , top_level_key )
82
82
arr . each_with_index do |v , i |
83
83
i = nil if pdftk_keys [ :always_overflow ]
84
84
if v . is_a? ( Hash )
85
85
v . each do |key , val |
86
- add_to_extras ( pdftk_keys [ key ] , convert_value ( val , pdftk_keys [ key ] , true ) , i )
86
+ add_to_extras ( pdftk_keys [ key ] , convert_value ( val , pdftk_keys [ key ] , true ) , i , top_level_key )
87
87
end
88
88
else
89
- add_to_extras ( pdftk_keys , convert_value ( v , pdftk_keys , true ) , i )
89
+ add_to_extras ( pdftk_keys , convert_value ( v , pdftk_keys , true ) , i , top_level_key )
90
90
end
91
91
end
92
92
end
93
93
94
- def set_value ( v , key_data , i , from_array_overflow = false )
94
+ def set_value ( v , key_data , i , from_array_overflow = false , top_level_key = nil )
95
95
k = key_data [ :key ]
96
96
return if k . blank?
97
97
@@ -100,7 +100,7 @@ def set_value(v, key_data, i, from_array_overflow = false)
100
100
new_value = convert_value ( v , key_data )
101
101
102
102
if overflow? ( key_data , new_value , from_array_overflow )
103
- add_to_extras ( key_data , new_value , i )
103
+ add_to_extras ( key_data , new_value , i , top_level_key )
104
104
105
105
new_value = EXTRAS_TEXT
106
106
end
@@ -123,7 +123,7 @@ def check_for_overflow(arr, pdftk_keys)
123
123
false
124
124
end
125
125
126
- def transform_array ( form_data , pdftk_keys )
126
+ def transform_array ( form_data , pdftk_keys , top_level_key )
127
127
has_overflow = check_for_overflow ( form_data , pdftk_keys )
128
128
129
129
if has_overflow
@@ -133,34 +133,36 @@ def transform_array(form_data, pdftk_keys)
133
133
form_data : { first_key => EXTRAS_TEXT } ,
134
134
pdftk_keys :,
135
135
i : 0 ,
136
- from_array_overflow : true
136
+ from_array_overflow : true ,
137
+ top_level_key :
137
138
)
138
139
139
- add_array_to_extras ( form_data , pdftk_keys )
140
+ add_array_to_extras ( form_data , pdftk_keys , top_level_key )
140
141
else
141
142
form_data . each_with_index do |v , idx |
142
- transform_data ( form_data : v , pdftk_keys :, i : idx )
143
+ transform_data ( form_data : v , pdftk_keys :, i : idx , top_level_key : )
143
144
end
144
145
end
145
146
end
146
147
147
- def transform_data ( form_data :, pdftk_keys :, i : nil , from_array_overflow : false )
148
+ def transform_data ( form_data :, pdftk_keys :, i : nil , from_array_overflow : false , top_level_key : nil )
148
149
return if form_data . nil? || pdftk_keys . nil?
149
150
150
151
case form_data
151
152
when Array
152
- transform_array ( form_data , pdftk_keys )
153
+ transform_array ( form_data , pdftk_keys , top_level_key )
153
154
when Hash
154
155
form_data . each do |k , v |
155
156
transform_data (
156
157
form_data : v ,
157
158
pdftk_keys : pdftk_keys [ k ] ,
158
159
i :,
159
- from_array_overflow :
160
+ from_array_overflow :,
161
+ top_level_key : top_level_key || k
160
162
)
161
163
end
162
164
else
163
- set_value ( form_data , pdftk_keys , i , from_array_overflow )
165
+ set_value ( form_data , pdftk_keys , i , from_array_overflow , top_level_key )
164
166
end
165
167
166
168
@pdftk_form
0 commit comments