141: def self.prefetch_hook(records)
142: name = nil
143: envs = nil
144: result = records.each { |record|
145: case record[:record_type]
146: when :comment
147: if record[:name]
148: name = record[:name]
149: record[:skip] = true
150:
151:
152: envs = []
153: end
154: when :environment
155:
156:
157: if envs
158: envs << record[:line]
159: record[:skip] = true
160: end
161: when :blank
162:
163: else
164: if name
165: record[:name] = name
166: name = nil
167: end
168: if envs.nil? or envs.empty?
169: record[:environment] = :absent
170: else
171:
172:
173: record[:environment] = envs
174:
175:
176: envs = nil
177: end
178: end
179: }.reject { |record| record[:skip] }
180: result
181: end