lib/mini_magick/image/info.rb in mini_magick-4.2.4 vs lib/mini_magick/image/info.rb in mini_magick-4.2.5

- old
+ new

@@ -98,24 +98,22 @@ end def details @info["details"] ||= ( details_string = identify(&:verbose) - details_string.each_line.with_object([]).inject({}) do |details_hash, (line, key_stack)| + key_stack = [] + details_string.lines[1..-1].each_with_object({}) do |line, details_hash| level = line[/^\s*/].length / 2 - 1 - next details_hash if level == -1 # we ignore the root level - key_stack.pop if level < key_stack.size + key_stack.pop until key_stack.size <= level key, _, value = line.partition(/:[\s\n]/).map(&:strip) hash = key_stack.inject(details_hash) { |hash, key| hash.fetch(key) } if value.empty? hash[key] = {} key_stack.push key else hash[key] = value end - - details_hash end ) end def identify