lib/ttfunk/subset/base.rb in ttfunk-1.6.2.1 vs lib/ttfunk/subset/base.rb in ttfunk-1.7.0

- old
+ new

@@ -52,41 +52,44 @@ def glyphs @glyphs ||= collect_glyphs(original_glyph_ids) end def collect_glyphs(glyph_ids) - collected = glyph_ids.each_with_object({}) do |id, h| - h[id] = glyph_for(id) - end + collected = + glyph_ids.each_with_object({}) do |id, h| + h[id] = glyph_for(id) + end additional_ids = collected.values - .select { |g| g && g.compound? } - .map(&:glyph_ids) - .flatten + .select { |g| g && g.compound? } + .map(&:glyph_ids) + .flatten collected.update(collect_glyphs(additional_ids)) if additional_ids.any? collected end def old_to_new_glyph - @old_to_new_glyph ||= begin - charmap = new_cmap_table[:charmap] - old_to_new = charmap.each_with_object(0 => 0) do |(_, ids), map| - map[ids[:old]] = ids[:new] - end + @old_to_new_glyph ||= + begin + charmap = new_cmap_table[:charmap] + old_to_new = + charmap.each_with_object(0 => 0) do |(_, ids), map| + map[ids[:old]] = ids[:new] + end - next_glyph_id = new_cmap_table[:max_glyph_id] + next_glyph_id = new_cmap_table[:max_glyph_id] - glyphs.keys.each do |old_id| - unless old_to_new.key?(old_id) - old_to_new[old_id] = next_glyph_id - next_glyph_id += 1 + glyphs.each_key do |old_id| + unless old_to_new.key?(old_id) + old_to_new[old_id] = next_glyph_id + next_glyph_id += 1 + end end - end - old_to_new - end + old_to_new + end end def new_to_old_glyph @new_to_old_glyph ||= old_to_new_glyph.invert end