6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/draftjs_html/spec_support.rb', line 6
def normalize_keys(raw_draftjs)
draftjs = DraftjsHtml::Draftjs::Content.parse(raw_draftjs)
draftjs.blocks.each.with_index do |block, i|
block.key = "block-key-#{i}"
end
draftjs.entity_map.keys.each.with_index do |entity_key, i|
new_key = "entity-key-#{i}"
draftjs.entity_map[new_key] = draftjs.entity_map.delete(entity_key)
matching_entity_ranges = draftjs.blocks.flat_map { |block| block.raw_entity_ranges.select { |entity_range| entity_range['key'] == entity_key } }
matching_entity_ranges.each { |range| range['key'] = new_key }
end
DraftjsHtml::Draftjs::ToRaw.new.convert(draftjs)
end
|