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