require 'rabbit/version' require 'json' # Rabbit Module module Rabbit # Rabbit Convert Class # Create an instance as follow # Rabbit::Converter.new class Converter def uni2zg(unicode) json_data = '[ { "from": "\u1004\u103a\u1039", "to": "\u1064" }, { "from": "\u1039\u1010\u103d", "to": "\u1096" }, { "from": "\u1014(?=[\u1030\u103d\u103e\u102f\u1039])", "to": "\u108f" }, { "from": "\u102b\u103a", "to": "\u105a" }, { "from": "\u100b\u1039\u100c", "to": "\u1092" }, { "from": "\u102d\u1036", "to": "\u108e" }, { "from": "\u104e\u1004\u103a\u1038", "to": "\u104e" }, { "from": "[\u1025\u1009](?=[\u1039\u102f\u1030])", "to": "\u106a" }, { "from": "[\u1025\u1009](?=[\u103a])", "to": "\u1025" }, { "from": "\u100a(?=[\u1039\u102f\u1030\u103d])", "to": "\u106b" }, { "from": "(\u1039[\u1000-\u1021])\u102f", "to": "\\\\1\u1033" }, { "from": "(\u1039[\u1000-\u1021])\u1030", "to": "\\\\1\u1034" }, { "from": "\u1039\u1000", "to": "\u1060" }, { "from": "\u1039\u1001", "to": "\u1061" }, { "from": "\u1039\u1002", "to": "\u1062" }, { "from": "\u1039\u1003", "to": "\u1063" }, { "from": "\u1039\u1005", "to": "\u1065" }, { "from": "\u1039\u1007", "to": "\u1068" }, { "from": "\u1039\u1008", "to": "\u1069" }, { "from": "\u100a(?=[\u1039\u102f\u1030])", "to": "\u106b" }, { "from": "\u1039\u100b", "to": "\u106c" }, { "from": "\u1039\u100c", "to": "\u106d" }, { "from": "\u100d\u1039\u100d", "to": "\u106e" }, { "from": "\u100e\u1039\u100d", "to": "\u106f" }, { "from": "\u1039\u100f", "to": "\u1070" }, { "from": "\u1039\u1010", "to": "\u1071" }, { "from": "\u1039\u1011", "to": "\u1073" }, { "from": "\u1039\u1012", "to": "\u1075" }, { "from": "\u1039\u1013", "to": "\u1076" }, { "from": "\u1039\u1013", "to": "\u1076" }, { "from": "\u1039\u1014", "to": "\u1077" }, { "from": "\u1039\u1015", "to": "\u1078" }, { "from": "\u1039\u1016", "to": "\u1079" }, { "from": "\u1039\u1017", "to": "\u107a" }, { "from": "\u1039\u1018", "to": "\u107b" }, { "from": "\u1039\u1019", "to": "\u107c" }, { "from": "\u1039\u101c", "to": "\u1085" }, { "from": "\u103f", "to": "\u1086" }, { "from": "(\u103c)\u103e", "to": "\\\\1\u1087" }, { "from": "\u103d\u103e", "to": "\u108a" }, { "from": "(\u1064)([\u1031]?)([\u103c]?)([\u1000-\u1021])\u102d", "to": "\\\\2\\\\3\\\\4\u108b" }, { "from": "(\u1064)([\u1031]?)([\u103c]?)([\u1000-\u1021])\u102e", "to": "\\\\2\\\\3\\\\4\u108c" }, { "from": "(\u1064)([\u1031]?)([\u103c]?)([\u1000-\u1021])\u1036", "to": "\\\\2\\\\3\\\\4\u108d" }, { "from": "(\u1064)([\u1031]?)([\u103c]?)([\u1000-\u1021])", "to": "\\\\2\\\\3\\\\4\\\\1" }, { "from": "\u101b(?=[\u102f\u1030\u103d\u108a])", "to": "\u1090" }, { "from": "\u100f\u1039\u100d", "to": "\u1091" }, { "from": "\u100b\u1039\u100b", "to": "\u1097" }, { "from": "([\u1000-\u1021\u1029\u1090])([\u1060-\u1069\u106c\u106d\u1070-\u107c\u1085\u108a])?([\u103b-\u103e]*)?\u1031", "to": "\u1031\\\\1\\\\2\\\\3" }, { "from": "([\u1000-\u1021\u1029])([\u1060-\u1069\u106c\u106d\u1070-\u107c\u1085])?(\u103c)", "to": "\\\\3\\\\1\\\\2" }, { "from": "\u103a", "to": "\u1039" }, { "from": "\u103b", "to": "\u103a" }, { "from": "\u103c", "to": "\u103b" }, { "from": "\u103d", "to": "\u103c" }, { "from": "\u103e", "to": "\u103d" }, { "from": "\u103d\u102f", "to": "\u1088" }, { "from": "([\u102f\u1030\u1014\u101b\u103c\u108a\u103d\u1088])([\u1032\u1036]{0,1})\u1037", "to": "\\\\1\\\\2\u1095" }, { "from": "\u102f\u1095", "to": "\u102f\u1094" }, { "from": "([\u1014\u101b])([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])\u1037", "to": "\\\\1\\\\2\u1095" }, { "from": "\u1095\u1039", "to": "\u1094\u1039" }, { "from": "([\u103a\u103b])([\u1000-\u1021])([\u1036\u102d\u102e\u108b\u108c\u108d\u108e]?)\u102f", "to": "\\\\1\\\\2\\\\3\u1033" }, { "from": "([\u103a\u103b])([\u1000-\u1021])([\u1036\u102d\u102e\u108b\u108c\u108d\u108e]?)\u1030", "to": "\\\\1\\\\2\\\\3\u1034" }, { "from": "\u103a\u102f", "to": "\u103a\u1033" }, { "from": "\u103a([\u1036\u102d\u102e\u108b\u108c\u108d\u108e])\u102f", "to": "\u103a\\\\1\u1033" }, { "from": "([\u103a\u103b])([\u1000-\u1021])\u1030", "to": "\\\\1\\\\2\u1034" }, { "from": "\u103a\u1030", "to": "\u103a\u1034" }, { "from": "\u103a([\u1036\u102d\u102e\u108b\u108c\u108d\u108e])\u1030", "to": "\u103a\\\\1\u1034" }, { "from": "\u103d\u1030", "to": "\u1089" }, { "from": "\u103b([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])", "to": "\u107e\\\\1" }, { "from": "\u107e([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])([\u103c\u108a])([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])", "to": "\u1084\\\\1\\\\2\\\\3" }, { "from": "\u107e([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])([\u103c\u108a])", "to": "\u1082\\\\1\\\\2" }, { "from": "\u107e([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])([\u1033\u1034]?)([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])", "to": "\u1080\\\\1\\\\2\\\\3" }, { "from": "\u103b([\u1000-\u1021])([\u103c\u108a])([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])", "to": "\u1083\\\\1\\\\2\\\\3" }, { "from": "\u103b([\u1000-\u1021])([\u103c\u108a])", "to": "\u1081\\\\1\\\\2" }, { "from": "\u103b([\u1000-\u1021])([\u1033\u1034]?)([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])", "to": "\u107f\\\\1\\\\2\\\\3" }, { "from": "\u103a\u103d", "to": "\u103d\u103a" }, { "from": "\u103a([\u103c\u108a])", "to": "\\\\1\u107d" }, { "from": "([\u1033\u1034])\u1094", "to": "\\\\1\u1095" }]' rule = JSON.parse(json_data) replace_with_rule(rule, unicode) end def zg2uni(zawgyi) json_data = '[ { "from": "(\u103d|\u1087)", "to": "\u103e" }, { "from": "\u103c", "to": "\u103d" }, { "from": "(\u103b|\u107e|\u107f|\u1080|\u1081|\u1082|\u1083|\u1084)", "to": "\u103c" }, { "from": "(\u103a|\u107d)", "to": "\u103b" }, { "from": "\u1039", "to": "\u103a" }, { "from": "\u106a", "to": "\u1009" }, { "from": "\u106b", "to": "\u100a" }, { "from": "\u106c", "to": "\u1039\u100b" }, { "from": "\u106d", "to": "\u1039\u100c" }, { "from": "\u106e", "to": "\u100d\u1039\u100d" }, { "from": "\u106f", "to": "\u100d\u1039\u100e" }, { "from": "\u1070", "to": "\u1039\u100f" }, { "from": "(\u1071|\u1072)", "to": "\u1039\u1010" }, { "from": "\u1060", "to": "\u1039\u1000" }, { "from": "\u1061", "to": "\u1039\u1001" }, { "from": "\u1062", "to": "\u1039\u1002" }, { "from": "\u1063", "to": "\u1039\u1003" }, { "from": "\u1065", "to": "\u1039\u1005" }, { "from": "\u1068", "to": "\u1039\u1007" }, { "from": "\u1069", "to": "\u1039\u1008" }, { "from": "/(\u1073|\u1074)/g", "to": "\u1039\u1011" }, { "from": "\u1075", "to": "\u1039\u1012" }, { "from": "\u1076", "to": "\u1039\u1013" }, { "from": "\u1077", "to": "\u1039\u1014" }, { "from": "\u1078", "to": "\u1039\u1015" }, { "from": "\u1079", "to": "\u1039\u1016" }, { "from": "\u107a", "to": "\u1039\u1017" }, { "from": "\u107c", "to": "\u1039\u1019" }, { "from": "\u1085", "to": "\u1039\u101c" }, { "from": "\u1033", "to": "\u102f" }, { "from": "\u1034", "to": "\u1030" }, { "from": "\u103f", "to": "\u1030" }, { "from": "\u1086", "to": "\u103f" }, { "from": "\u1088", "to": "\u103e\u102f" }, { "from": "\u1089", "to": "\u103e\u1030" }, { "from": "\u108a", "to": "\u103d\u103e" }, { "from": "([\u1000-\u1021])\u1064", "to": "\u1004\u103a\u1039\\\\1" }, { "from": "([\u1000-\u1021])\u108b", "to": "\u1004\u103a\u1039\\\\1\u102d" }, { "from": "([\u1000-\u1021])\u108c", "to": "\u1004\u103a\u1039\\\\1\u102e" }, { "from": "([\u1000-\u1021])\u108d", "to": "\u1004\u103a\u1039\\\\1\u1036" }, { "from": "\u108e", "to": "\u102d\u1036" }, { "from": "\u108f", "to": "\u1014" }, { "from": "\u1090", "to": "\u101b" }, { "from": "\u1091", "to": "\u100f\u1039\u1091" }, { "from": "\u1019\u102c(\u107b|\u1093)", "to": "\u1019\u1039\u1018\u102c" }, { "from": "(\u107b|\u1093)", "to": "\u103a\u1018" }, { "from": "(\u1094|\u1095)", "to": "\u1037" }, { "from": "\u1096", "to": "\u1039\u1010\u103d" }, { "from": "\u1097", "to": "\u100b\u1039\u100b" }, { "from": "\u103c([\u1000-\u1021])([\u1000-\u1021])?", "to": "\\\\1\u103c\\\\2" }, { "from": "([\u1000-\u1021])\u103c\u103a", "to": "\u103c\\\\1\u103a" }, { "from": "\u1031([\u1000-\u1021])(\u103e)?(\u103b)?", "to": "\\\\1\\\\2\\\\3\u1031" }, { "from": "([\u1000-\u1021])\u1031([\u103b\u103c\u103d])", "to": "\\\\1\\\\2\u1031" }, { "from": "\u1032\u103d", "to": "\u103d\u1032" }, { "from": "\u103d\u103b", "to": "\u103b\u103d" }, { "from": "\u103a\u1037", "to": "\u1037\u103a" }, { "from": "\u102f(\u102d|\u102e|\u1036|\u1037)\u102f", "to": "\u102f\\\\1" }, { "from": "\u102f\u102f", "to": "\u102f" }, { "from": "(\u102f|\u1030)(\u102d|\u102e)", "to": "\\\\2\\\\1" }, { "from": "(\u103e)(\u103b|\u1037)", "to": "\\\\2\\\\1" }, { "from": "\u1025(\u103a|\u102c)", "to": "\u1009\\\\1" }, { "from": "\u1025\u102e", "to": "\u1026" }, { "from": "\u1005\u103b", "to": "\u1008" }, { "from": "\u1036(\u102f|\u1030)", "to": "\\\\1\u1036" }, { "from": "\u1031\u1037\u103e", "to": "\u103e\u1031\u1037" }, { "from": "\u1031\u103e\u102c", "to": "\u103e\u1031\u102c" }, { "from": "\u105a", "to": "\u102b\u103a" }, { "from": "\u1031\u103b\u103e", "to": "\u103b\u103e\u1031" }, { "from": "(\u102d|\u102e)(\u103d|\u103e)", "to": "\\\\2\\\\1" }, { "from": "\u102c\u1039([\u1000-\u1021])", "to": "\u1039\\\\1\u102c" }, { "from": "\u103c\u1004\u103a\u1039([\u1000-\u1021])", "to": "\u1004\u103a\u1039\\\\1\u103c" }, { "from": "\u1039\u103c\u103a\u1039([\u1000-\u1021])", "to": "\u103a\u1039\\\\1\u103c" }, { "from": "\u103c\u1039([\u1000-\u1021])", "to": "\u1039\\\\1\u103c" }, { "from": "\u1036\u1039([\u1000-\u1021])", "to": "\u1039\\\\1\u1036" }, { "from": "\u1092", "to": "\u100b\u1039\u100c" }, { "from": "\u104e", "to": "\u104e\u1004\u103a\u1038" }, { "from": "\u1040(\u102b|\u102c|\u1036)", "to": "\u101d\\\\1" }, { "from": "\u1025\u1039", "to": "\u1009\u1039" }, { "from": "([\u1000-\u1021])\u103c\u1031\u103d", "to": "\\\\1\u103c\u103d\u1031" }, { "from": "([\u1000-\u1021])\u103d\u1031\u103b", "to": "\\\\1\u103b\u103d\u1031" }]' rule = JSON.parse(json_data) replace_with_rule(rule, zawgyi) end def replace_with_rule(rule, output) rule.each do |data| from = Regexp.new data['from'] output = output.gsub(from, data['to']) end output end end end