1 #!/usr/bin/env ruby
2 require 'json'
3
4 json_in = ARGF.read
5
6 if json_in.length < 1
7 puts "Oops, need JSON data. Pipe in or supply filename."
8 exit 1
9 end
10
11 list = JSON.parse(json_in)
12
13 emoj_txt = ""
14 labels = ""
15 tags = ""
16 all_tags = []
17
18 list.each do |e|
19 emoj_txt << e["emoji"]
20 labels << e["label"]
21 if e["tags"]
22 tags << e["tags"].join("")
23 all_tags.concat e["tags"]
24 end
25 end
26
27 unique_tags = all_tags.uniq
28
29 tb = tags.bytesize
30 lb = labels.bytesize
31 eb = emoj_txt.bytesize
32
33 puts " List length: #{list.length}"
34 puts " Raw emoji len: #{emoj_txt.length} (longer than list due to multi-character combos!)"
35 puts " Raw emoji bytes: #{eb} (much longer due to multibyte + multi-character)"
36 puts " Labels (bytes): #{lb}"
37 puts " Tags: #{all_tags.length}"
38 puts " Tags (bytes): #{tb}"
39 puts " Unique tags: #{unique_tags.length}"
40 puts "Unique tags (bytes): #{unique_tags.join("").bytesize}"
41 puts "--------------------------------------"
42 puts "Tags + Labels + Emoji (bytes): #{tb+lb+eb}"