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}"