prawn-emoji 3.1.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +3 -0
- data/.github/workflows/test.yml +39 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +44 -0
- data/Dockerfile +4 -10
- data/Gemfile +5 -0
- data/README.md +37 -15
- data/emoji/LICENSE +1 -1
- data/emoji/images/1f36a.png +0 -0
- data/emoji/images/1f3c3-1f3fb.png +0 -0
- data/emoji/images/1f3c3-1f3fc.png +0 -0
- data/emoji/images/1f3c3-1f3fd.png +0 -0
- data/emoji/images/1f3c3-1f3fe.png +0 -0
- data/emoji/images/1f3c3-1f3ff.png +0 -0
- data/emoji/images/1f3c3.png +0 -0
- data/emoji/images/1f3c4-1f3fb.png +0 -0
- data/emoji/images/1f3c4-1f3fc.png +0 -0
- data/emoji/images/1f3c4-1f3fd.png +0 -0
- data/emoji/images/1f3c4-1f3fe.png +0 -0
- data/emoji/images/1f3c4-1f3ff.png +0 -0
- data/emoji/images/1f3c4.png +0 -0
- data/emoji/images/1f3ca-1f3fb.png +0 -0
- data/emoji/images/1f3ca-1f3fc.png +0 -0
- data/emoji/images/1f3ca-1f3fd.png +0 -0
- data/emoji/images/1f3ca-1f3fe.png +0 -0
- data/emoji/images/1f3ca-1f3ff.png +0 -0
- data/emoji/images/1f3ca.png +0 -0
- data/emoji/images/1f3cb-1f3fb.png +0 -0
- data/emoji/images/1f3cb-1f3fc.png +0 -0
- data/emoji/images/1f3cb-1f3fd.png +0 -0
- data/emoji/images/1f3cb-1f3fe.png +0 -0
- data/emoji/images/1f3cb-1f3ff.png +0 -0
- data/emoji/images/1f3cb.png +0 -0
- data/emoji/images/1f3cc-1f3fb.png +0 -0
- data/emoji/images/1f3cc-1f3fc.png +0 -0
- data/emoji/images/1f3cc-1f3fd.png +0 -0
- data/emoji/images/1f3cc-1f3fe.png +0 -0
- data/emoji/images/1f3cc-1f3ff.png +0 -0
- data/emoji/images/1f3cc.png +0 -0
- data/emoji/images/1f408-200d-2b1b.png +0 -0
- data/emoji/images/1f429.png +0 -0
- data/emoji/images/1f43b-200d-2744.png +0 -0
- data/emoji/images/1f468-1f3fb-200d-1f37c.png +0 -0
- data/emoji/images/1f468-1f3fb-200d-1f384.png +0 -0
- data/emoji/images/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f468-1f3fc-200d-1f37c.png +0 -0
- data/emoji/images/1f468-1f3fc-200d-1f384.png +0 -0
- data/emoji/images/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f468-1f3fd-200d-1f37c.png +0 -0
- data/emoji/images/1f468-1f3fd-200d-1f384.png +0 -0
- data/emoji/images/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f468-1f3fe-200d-1f37c.png +0 -0
- data/emoji/images/1f468-1f3fe-200d-1f384.png +0 -0
- data/emoji/images/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f468-1f3ff-200d-1f37c.png +0 -0
- data/emoji/images/1f468-1f3ff-200d-1f384.png +0 -0
- data/emoji/images/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f468-200d-1f37c.png +0 -0
- data/emoji/images/1f468-200d-1f384.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f37c.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f384.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f37c.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f384.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f37c.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f384.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f37c.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f384.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f37c.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f384.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.png +0 -0
- data/emoji/images/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.png +0 -0
- data/emoji/images/1f469-200d-1f37c.png +0 -0
- data/emoji/images/1f469-200d-1f384.png +0 -0
- data/emoji/images/1f46a.png +0 -0
- data/emoji/images/1f46b-1f3fb.png +0 -0
- data/emoji/images/1f46b-1f3fc.png +0 -0
- data/emoji/images/1f46b-1f3fd.png +0 -0
- data/emoji/images/1f46b-1f3fe.png +0 -0
- data/emoji/images/1f46b-1f3ff.png +0 -0
- data/emoji/images/1f46b.png +0 -0
- data/emoji/images/1f46c-1f3fb.png +0 -0
- data/emoji/images/1f46c-1f3fc.png +0 -0
- data/emoji/images/1f46c-1f3fd.png +0 -0
- data/emoji/images/1f46c-1f3fe.png +0 -0
- data/emoji/images/1f46c-1f3ff.png +0 -0
- data/emoji/images/1f46c.png +0 -0
- data/emoji/images/1f46d-1f3fb.png +0 -0
- data/emoji/images/1f46d-1f3fc.png +0 -0
- data/emoji/images/1f46d-1f3fd.png +0 -0
- data/emoji/images/1f46d-1f3fe.png +0 -0
- data/emoji/images/1f46d-1f3ff.png +0 -0
- data/emoji/images/1f46d.png +0 -0
- data/emoji/images/1f46e-1f3fb.png +0 -0
- data/emoji/images/1f46e-1f3fc.png +0 -0
- data/emoji/images/1f46e-1f3fd.png +0 -0
- data/emoji/images/1f46e-1f3fe.png +0 -0
- data/emoji/images/1f46e-1f3ff.png +0 -0
- data/emoji/images/1f46e.png +0 -0
- data/emoji/images/1f46f-200d-2640.png +0 -0
- data/emoji/images/1f46f-200d-2642.png +0 -0
- data/emoji/images/1f46f.png +0 -0
- data/emoji/images/1f470-1f3fb-200d-2640.png +0 -0
- data/emoji/images/1f470-1f3fb-200d-2642.png +0 -0
- data/emoji/images/1f470-1f3fb.png +0 -0
- data/emoji/images/1f470-1f3fc-200d-2640.png +0 -0
- data/emoji/images/1f470-1f3fc-200d-2642.png +0 -0
- data/emoji/images/1f470-1f3fc.png +0 -0
- data/emoji/images/1f470-1f3fd-200d-2640.png +0 -0
- data/emoji/images/1f470-1f3fd-200d-2642.png +0 -0
- data/emoji/images/1f470-1f3fd.png +0 -0
- data/emoji/images/1f470-1f3fe-200d-2640.png +0 -0
- data/emoji/images/1f470-1f3fe-200d-2642.png +0 -0
- data/emoji/images/1f470-1f3fe.png +0 -0
- data/emoji/images/1f470-1f3ff-200d-2640.png +0 -0
- data/emoji/images/1f470-1f3ff-200d-2642.png +0 -0
- data/emoji/images/1f470-1f3ff.png +0 -0
- data/emoji/images/1f470-200d-2640.png +0 -0
- data/emoji/images/1f470-200d-2642.png +0 -0
- data/emoji/images/1f470.png +0 -0
- data/emoji/images/1f471-1f3fb.png +0 -0
- data/emoji/images/1f471-1f3fc.png +0 -0
- data/emoji/images/1f471-1f3fd.png +0 -0
- data/emoji/images/1f471-1f3fe.png +0 -0
- data/emoji/images/1f471-1f3ff.png +0 -0
- data/emoji/images/1f471.png +0 -0
- data/emoji/images/1f473-1f3fb.png +0 -0
- data/emoji/images/1f473-1f3fc.png +0 -0
- data/emoji/images/1f473-1f3fd.png +0 -0
- data/emoji/images/1f473-1f3fe.png +0 -0
- data/emoji/images/1f473-1f3ff.png +0 -0
- data/emoji/images/1f473.png +0 -0
- data/emoji/images/1f477-1f3fb.png +0 -0
- data/emoji/images/1f477-1f3fc.png +0 -0
- data/emoji/images/1f477-1f3fd.png +0 -0
- data/emoji/images/1f477-1f3fe.png +0 -0
- data/emoji/images/1f477-1f3ff.png +0 -0
- data/emoji/images/1f477.png +0 -0
- data/emoji/images/1f481-1f3fb.png +0 -0
- data/emoji/images/1f481-1f3fc.png +0 -0
- data/emoji/images/1f481-1f3fd.png +0 -0
- data/emoji/images/1f481-1f3fe.png +0 -0
- data/emoji/images/1f481-1f3ff.png +0 -0
- data/emoji/images/1f481.png +0 -0
- data/emoji/images/1f482-1f3fb.png +0 -0
- data/emoji/images/1f482-1f3fc.png +0 -0
- data/emoji/images/1f482-1f3fd.png +0 -0
- data/emoji/images/1f482-1f3fe.png +0 -0
- data/emoji/images/1f482-1f3ff.png +0 -0
- data/emoji/images/1f482.png +0 -0
- data/emoji/images/1f486-1f3fb.png +0 -0
- data/emoji/images/1f486-1f3fc.png +0 -0
- data/emoji/images/1f486-1f3fd.png +0 -0
- data/emoji/images/1f486-1f3fe.png +0 -0
- data/emoji/images/1f486-1f3ff.png +0 -0
- data/emoji/images/1f486.png +0 -0
- data/emoji/images/1f487-1f3fb.png +0 -0
- data/emoji/images/1f487-1f3fc.png +0 -0
- data/emoji/images/1f487-1f3fd.png +0 -0
- data/emoji/images/1f487-1f3fe.png +0 -0
- data/emoji/images/1f487-1f3ff.png +0 -0
- data/emoji/images/1f487.png +0 -0
- data/emoji/images/1f48f.png +0 -0
- data/emoji/images/1f491.png +0 -0
- data/emoji/images/1f4aa-1f3fb.png +0 -0
- data/emoji/images/1f4aa-1f3fc.png +0 -0
- data/emoji/images/1f4aa-1f3fd.png +0 -0
- data/emoji/images/1f4aa-1f3fe.png +0 -0
- data/emoji/images/1f4aa-1f3ff.png +0 -0
- data/emoji/images/1f4aa.png +0 -0
- data/emoji/images/1f4b4.png +0 -0
- data/emoji/images/1f4b5.png +0 -0
- data/emoji/images/1f4b6.png +0 -0
- data/emoji/images/1f4b7.png +0 -0
- data/emoji/images/1f4b8.png +0 -0
- data/emoji/images/1f4ba.png +0 -0
- data/emoji/images/1f574-1f3fb.png +0 -0
- data/emoji/images/1f574-1f3fc.png +0 -0
- data/emoji/images/1f574-1f3fd.png +0 -0
- data/emoji/images/1f574-1f3fe.png +0 -0
- data/emoji/images/1f574-1f3ff.png +0 -0
- data/emoji/images/1f574.png +0 -0
- data/emoji/images/1f575-1f3fb.png +0 -0
- data/emoji/images/1f575-1f3fc.png +0 -0
- data/emoji/images/1f575-1f3fd.png +0 -0
- data/emoji/images/1f575-1f3fe.png +0 -0
- data/emoji/images/1f575-1f3ff.png +0 -0
- data/emoji/images/1f575.png +0 -0
- data/emoji/images/1f5e1.png +0 -0
- data/emoji/images/1f60b.png +0 -0
- data/emoji/images/1f61b.png +0 -0
- data/emoji/images/1f61c.png +0 -0
- data/emoji/images/1f61d.png +0 -0
- data/emoji/images/1f633.png +0 -0
- data/emoji/images/1f645-1f3fb.png +0 -0
- data/emoji/images/1f645-1f3fc.png +0 -0
- data/emoji/images/1f645-1f3fd.png +0 -0
- data/emoji/images/1f645-1f3fe.png +0 -0
- data/emoji/images/1f645-1f3ff.png +0 -0
- data/emoji/images/1f645.png +0 -0
- data/emoji/images/1f646-1f3fb.png +0 -0
- data/emoji/images/1f646-1f3fc.png +0 -0
- data/emoji/images/1f646-1f3fd.png +0 -0
- data/emoji/images/1f646-1f3fe.png +0 -0
- data/emoji/images/1f646-1f3ff.png +0 -0
- data/emoji/images/1f646.png +0 -0
- data/emoji/images/1f647-1f3fb.png +0 -0
- data/emoji/images/1f647-1f3fc.png +0 -0
- data/emoji/images/1f647-1f3fd.png +0 -0
- data/emoji/images/1f647-1f3fe.png +0 -0
- data/emoji/images/1f647-1f3ff.png +0 -0
- data/emoji/images/1f647.png +0 -0
- data/emoji/images/1f64b-1f3fb.png +0 -0
- data/emoji/images/1f64b-1f3fc.png +0 -0
- data/emoji/images/1f64b-1f3fd.png +0 -0
- data/emoji/images/1f64b-1f3fe.png +0 -0
- data/emoji/images/1f64b-1f3ff.png +0 -0
- data/emoji/images/1f64b.png +0 -0
- data/emoji/images/1f64d-1f3fb.png +0 -0
- data/emoji/images/1f64d-1f3fc.png +0 -0
- data/emoji/images/1f64d-1f3fd.png +0 -0
- data/emoji/images/1f64d-1f3fe.png +0 -0
- data/emoji/images/1f64d-1f3ff.png +0 -0
- data/emoji/images/1f64d.png +0 -0
- data/emoji/images/1f64e-1f3fb.png +0 -0
- data/emoji/images/1f64e-1f3fc.png +0 -0
- data/emoji/images/1f64e-1f3fd.png +0 -0
- data/emoji/images/1f64e-1f3fe.png +0 -0
- data/emoji/images/1f64e-1f3ff.png +0 -0
- data/emoji/images/1f64e.png +0 -0
- data/emoji/images/1f6a3-1f3fb.png +0 -0
- data/emoji/images/1f6a3-1f3fc.png +0 -0
- data/emoji/images/1f6a3-1f3fd.png +0 -0
- data/emoji/images/1f6a3-1f3fe.png +0 -0
- data/emoji/images/1f6a3-1f3ff.png +0 -0
- data/emoji/images/1f6a3.png +0 -0
- data/emoji/images/1f6b4-1f3fb.png +0 -0
- data/emoji/images/1f6b4-1f3fc.png +0 -0
- data/emoji/images/1f6b4-1f3fd.png +0 -0
- data/emoji/images/1f6b4-1f3fe.png +0 -0
- data/emoji/images/1f6b4-1f3ff.png +0 -0
- data/emoji/images/1f6b4.png +0 -0
- data/emoji/images/1f6b5-1f3fb.png +0 -0
- data/emoji/images/1f6b5-1f3fc.png +0 -0
- data/emoji/images/1f6b5-1f3fd.png +0 -0
- data/emoji/images/1f6b5-1f3fe.png +0 -0
- data/emoji/images/1f6b5-1f3ff.png +0 -0
- data/emoji/images/1f6b5.png +0 -0
- data/emoji/images/1f6b6-1f3fb.png +0 -0
- data/emoji/images/1f6b6-1f3fc.png +0 -0
- data/emoji/images/1f6b6-1f3fd.png +0 -0
- data/emoji/images/1f6b6-1f3fe.png +0 -0
- data/emoji/images/1f6b6-1f3ff.png +0 -0
- data/emoji/images/1f6b6.png +0 -0
- data/emoji/images/1f6d6.png +0 -0
- data/emoji/images/1f6d7.png +0 -0
- data/emoji/images/1f6fb.png +0 -0
- data/emoji/images/1f6fc.png +0 -0
- data/emoji/images/1f90c-1f3fb.png +0 -0
- data/emoji/images/1f90c-1f3fc.png +0 -0
- data/emoji/images/1f90c-1f3fd.png +0 -0
- data/emoji/images/1f90c-1f3fe.png +0 -0
- data/emoji/images/1f90c-1f3ff.png +0 -0
- data/emoji/images/1f90c.png +0 -0
- data/emoji/images/1f926-1f3fb.png +0 -0
- data/emoji/images/1f926-1f3fc.png +0 -0
- data/emoji/images/1f926-1f3fd.png +0 -0
- data/emoji/images/1f926-1f3fe.png +0 -0
- data/emoji/images/1f926-1f3ff.png +0 -0
- data/emoji/images/1f926.png +0 -0
- data/emoji/images/1f92f.png +0 -0
- data/emoji/images/1f933.png +0 -0
- data/emoji/images/1f935-1f3fb.png +0 -0
- data/emoji/images/1f935-1f3fc.png +0 -0
- data/emoji/images/1f935-1f3fd.png +0 -0
- data/emoji/images/1f935-1f3fe.png +0 -0
- data/emoji/images/1f935-1f3ff.png +0 -0
- data/emoji/images/1f935.png +0 -0
- data/emoji/images/1f937-1f3fb.png +0 -0
- data/emoji/images/1f937-1f3fc.png +0 -0
- data/emoji/images/1f937-1f3fd.png +0 -0
- data/emoji/images/1f937-1f3fe.png +0 -0
- data/emoji/images/1f937-1f3ff.png +0 -0
- data/emoji/images/1f937.png +0 -0
- data/emoji/images/1f938-1f3fb.png +0 -0
- data/emoji/images/1f938-1f3fc.png +0 -0
- data/emoji/images/1f938-1f3fd.png +0 -0
- data/emoji/images/1f938-1f3fe.png +0 -0
- data/emoji/images/1f938-1f3ff.png +0 -0
- data/emoji/images/1f938.png +0 -0
- data/emoji/images/1f939-1f3fb.png +0 -0
- data/emoji/images/1f939-1f3fc.png +0 -0
- data/emoji/images/1f939-1f3fd.png +0 -0
- data/emoji/images/1f939-1f3fe.png +0 -0
- data/emoji/images/1f939-1f3ff.png +0 -0
- data/emoji/images/1f939.png +0 -0
- data/emoji/images/1f93c.png +0 -0
- data/emoji/images/1f93d-1f3fb.png +0 -0
- data/emoji/images/1f93d-1f3fc.png +0 -0
- data/emoji/images/1f93d-1f3fd.png +0 -0
- data/emoji/images/1f93d-1f3fe.png +0 -0
- data/emoji/images/1f93d-1f3ff.png +0 -0
- data/emoji/images/1f93d.png +0 -0
- data/emoji/images/1f93e-1f3fb.png +0 -0
- data/emoji/images/1f93e-1f3fc.png +0 -0
- data/emoji/images/1f93e-1f3fd.png +0 -0
- data/emoji/images/1f93e-1f3fe.png +0 -0
- data/emoji/images/1f93e-1f3ff.png +0 -0
- data/emoji/images/1f93e.png +0 -0
- data/emoji/images/1f94d.png +0 -0
- data/emoji/images/1f972.png +0 -0
- data/emoji/images/1f977-1f3fb.png +0 -0
- data/emoji/images/1f977-1f3fc.png +0 -0
- data/emoji/images/1f977-1f3fd.png +0 -0
- data/emoji/images/1f977-1f3fe.png +0 -0
- data/emoji/images/1f977-1f3ff.png +0 -0
- data/emoji/images/1f977.png +0 -0
- data/emoji/images/1f978.png +0 -0
- data/emoji/images/1f97b.png +0 -0
- data/emoji/images/1f9a3.png +0 -0
- data/emoji/images/1f9a4.png +0 -0
- data/emoji/images/1f9ab.png +0 -0
- data/emoji/images/1f9ac.png +0 -0
- data/emoji/images/1f9ad.png +0 -0
- data/emoji/images/1f9b8-1f3fb-200d-2640.png +0 -0
- data/emoji/images/1f9b8-1f3fb-200d-2642.png +0 -0
- data/emoji/images/1f9b8-1f3fb.png +0 -0
- data/emoji/images/1f9b8-1f3fc-200d-2640.png +0 -0
- data/emoji/images/1f9b8-1f3fc-200d-2642.png +0 -0
- data/emoji/images/1f9b8-1f3fc.png +0 -0
- data/emoji/images/1f9b8-1f3fd-200d-2640.png +0 -0
- data/emoji/images/1f9b8-1f3fd-200d-2642.png +0 -0
- data/emoji/images/1f9b8-1f3fd.png +0 -0
- data/emoji/images/1f9b8-1f3fe-200d-2640.png +0 -0
- data/emoji/images/1f9b8-1f3fe-200d-2642.png +0 -0
- data/emoji/images/1f9b8-1f3fe.png +0 -0
- data/emoji/images/1f9b8-1f3ff-200d-2640.png +0 -0
- data/emoji/images/1f9b8-1f3ff-200d-2642.png +0 -0
- data/emoji/images/1f9b8-1f3ff.png +0 -0
- data/emoji/images/1f9b8-200d-2640.png +0 -0
- data/emoji/images/1f9b8-200d-2642.png +0 -0
- data/emoji/images/1f9b8.png +0 -0
- data/emoji/images/1f9b9-1f3fb-200d-2640.png +0 -0
- data/emoji/images/1f9b9-1f3fb-200d-2642.png +0 -0
- data/emoji/images/1f9b9-1f3fb.png +0 -0
- data/emoji/images/1f9b9-1f3fc-200d-2640.png +0 -0
- data/emoji/images/1f9b9-1f3fc-200d-2642.png +0 -0
- data/emoji/images/1f9b9-1f3fc.png +0 -0
- data/emoji/images/1f9b9-1f3fd-200d-2640.png +0 -0
- data/emoji/images/1f9b9-1f3fd-200d-2642.png +0 -0
- data/emoji/images/1f9b9-1f3fd.png +0 -0
- data/emoji/images/1f9b9-1f3fe-200d-2640.png +0 -0
- data/emoji/images/1f9b9-1f3fe-200d-2642.png +0 -0
- data/emoji/images/1f9b9-1f3fe.png +0 -0
- data/emoji/images/1f9b9-1f3ff-200d-2640.png +0 -0
- data/emoji/images/1f9b9-1f3ff-200d-2642.png +0 -0
- data/emoji/images/1f9b9-1f3ff.png +0 -0
- data/emoji/images/1f9b9-200d-2640.png +0 -0
- data/emoji/images/1f9b9-200d-2642.png +0 -0
- data/emoji/images/1f9b9.png +0 -0
- data/emoji/images/1f9cb.png +0 -0
- data/emoji/images/1f9cd-1f3fb.png +0 -0
- data/emoji/images/1f9cd-1f3fc.png +0 -0
- data/emoji/images/1f9cd-1f3fd.png +0 -0
- data/emoji/images/1f9cd-1f3fe.png +0 -0
- data/emoji/images/1f9cd-1f3ff.png +0 -0
- data/emoji/images/1f9cd.png +0 -0
- data/emoji/images/1f9ce-1f3fb.png +0 -0
- data/emoji/images/1f9ce-1f3fc.png +0 -0
- data/emoji/images/1f9ce-1f3fd.png +0 -0
- data/emoji/images/1f9ce-1f3fe.png +0 -0
- data/emoji/images/1f9ce-1f3ff.png +0 -0
- data/emoji/images/1f9ce.png +0 -0
- data/emoji/images/1f9cf-1f3fb.png +0 -0
- data/emoji/images/1f9cf-1f3fc.png +0 -0
- data/emoji/images/1f9cf-1f3fd.png +0 -0
- data/emoji/images/1f9cf-1f3fe.png +0 -0
- data/emoji/images/1f9cf-1f3ff.png +0 -0
- data/emoji/images/1f9cf.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f33e.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f373.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f37c.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f384.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f393.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f3a4.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f3a8.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f3eb.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f3ed.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f4bb.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f4bc.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f527.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f52c.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f680.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f692.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9af.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9b0.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9b1.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9b2.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9b3.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9bc.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-1f9bd.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-2695.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-2696.png +0 -0
- data/emoji/images/1f9d1-1f3fb-200d-2708.png +0 -0
- data/emoji/images/1f9d1-1f3fb.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f33e.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f373.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f37c.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f384.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f393.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f3a4.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f3a8.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f3eb.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f3ed.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f4bb.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f4bc.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f527.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f52c.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f680.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f692.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9af.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9b0.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9b1.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9b2.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9b3.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9bc.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-1f9bd.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-2695.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-2696.png +0 -0
- data/emoji/images/1f9d1-1f3fc-200d-2708.png +0 -0
- data/emoji/images/1f9d1-1f3fc.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f33e.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f373.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f37c.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f384.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f393.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f3a4.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f3a8.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f3eb.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f3ed.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f4bb.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f4bc.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f527.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f52c.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f680.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f692.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9af.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9b0.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9b1.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9b2.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9b3.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9bc.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-1f9bd.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-2695.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-2696.png +0 -0
- data/emoji/images/1f9d1-1f3fd-200d-2708.png +0 -0
- data/emoji/images/1f9d1-1f3fd.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f33e.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f373.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f37c.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f384.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f393.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f3a4.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f3a8.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f3eb.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f3ed.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f4bb.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f4bc.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f527.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f52c.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f680.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f692.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9af.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9b0.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9b1.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9b2.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9b3.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9bc.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-1f9bd.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-2695.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-2696.png +0 -0
- data/emoji/images/1f9d1-1f3fe-200d-2708.png +0 -0
- data/emoji/images/1f9d1-1f3fe.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f33e.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f373.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f37c.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f384.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f393.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f3a4.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f3a8.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f3eb.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f3ed.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f4bb.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f4bc.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f527.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f52c.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f680.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f692.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9af.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9b0.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9b1.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9b2.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9b3.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9bc.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-1f9bd.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-2695.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-2696.png +0 -0
- data/emoji/images/1f9d1-1f3ff-200d-2708.png +0 -0
- data/emoji/images/1f9d1-1f3ff.png +0 -0
- data/emoji/images/1f9d1-200d-1f33e.png +0 -0
- data/emoji/images/1f9d1-200d-1f373.png +0 -0
- data/emoji/images/1f9d1-200d-1f37c.png +0 -0
- data/emoji/images/1f9d1-200d-1f384.png +0 -0
- data/emoji/images/1f9d1-200d-1f393.png +0 -0
- data/emoji/images/1f9d1-200d-1f3a4.png +0 -0
- data/emoji/images/1f9d1-200d-1f3a8.png +0 -0
- data/emoji/images/1f9d1-200d-1f3eb.png +0 -0
- data/emoji/images/1f9d1-200d-1f3ed.png +0 -0
- data/emoji/images/1f9d1-200d-1f4bb.png +0 -0
- data/emoji/images/1f9d1-200d-1f4bc.png +0 -0
- data/emoji/images/1f9d1-200d-1f527.png +0 -0
- data/emoji/images/1f9d1-200d-1f52c.png +0 -0
- data/emoji/images/1f9d1-200d-1f680.png +0 -0
- data/emoji/images/1f9d1-200d-1f692.png +0 -0
- data/emoji/images/1f9d1-200d-1f91d-200d-1f9d1.png +0 -0
- data/emoji/images/1f9d1-200d-1f9af.png +0 -0
- data/emoji/images/1f9d1-200d-1f9b0.png +0 -0
- data/emoji/images/1f9d1-200d-1f9b1.png +0 -0
- data/emoji/images/1f9d1-200d-1f9b2.png +0 -0
- data/emoji/images/1f9d1-200d-1f9b3.png +0 -0
- data/emoji/images/1f9d1-200d-1f9bc.png +0 -0
- data/emoji/images/1f9d1-200d-1f9bd.png +0 -0
- data/emoji/images/1f9d1-200d-2695.png +0 -0
- data/emoji/images/1f9d1-200d-2696.png +0 -0
- data/emoji/images/1f9d1-200d-2708.png +0 -0
- data/emoji/images/1f9d1.png +0 -0
- data/emoji/images/1f9d2-1f3fb.png +0 -0
- data/emoji/images/1f9d2-1f3fc.png +0 -0
- data/emoji/images/1f9d2-1f3fd.png +0 -0
- data/emoji/images/1f9d2-1f3fe.png +0 -0
- data/emoji/images/1f9d2-1f3ff.png +0 -0
- data/emoji/images/1f9d2.png +0 -0
- data/emoji/images/1f9d3-1f3fb.png +0 -0
- data/emoji/images/1f9d3-1f3fc.png +0 -0
- data/emoji/images/1f9d3-1f3fd.png +0 -0
- data/emoji/images/1f9d3-1f3fe.png +0 -0
- data/emoji/images/1f9d3-1f3ff.png +0 -0
- data/emoji/images/1f9d3.png +0 -0
- data/emoji/images/1f9d4-1f3fb.png +0 -0
- data/emoji/images/1f9d4-1f3fc.png +0 -0
- data/emoji/images/1f9d4-1f3fd.png +0 -0
- data/emoji/images/1f9d4-1f3fe.png +0 -0
- data/emoji/images/1f9d4-1f3ff.png +0 -0
- data/emoji/images/1f9d4.png +0 -0
- data/emoji/images/1f9d6-1f3fb.png +0 -0
- data/emoji/images/1f9d6-1f3fc.png +0 -0
- data/emoji/images/1f9d6-1f3fd.png +0 -0
- data/emoji/images/1f9d6-1f3fe.png +0 -0
- data/emoji/images/1f9d6-1f3ff.png +0 -0
- data/emoji/images/1f9d6.png +0 -0
- data/emoji/images/1f9d7-1f3fb.png +0 -0
- data/emoji/images/1f9d7-1f3fc.png +0 -0
- data/emoji/images/1f9d7-1f3fd.png +0 -0
- data/emoji/images/1f9d7-1f3fe.png +0 -0
- data/emoji/images/1f9d7-1f3ff.png +0 -0
- data/emoji/images/1f9d7.png +0 -0
- data/emoji/images/1f9d8-1f3fb.png +0 -0
- data/emoji/images/1f9d8-1f3fc.png +0 -0
- data/emoji/images/1f9d8-1f3fd.png +0 -0
- data/emoji/images/1f9d8-1f3fe.png +0 -0
- data/emoji/images/1f9d8-1f3ff.png +0 -0
- data/emoji/images/1f9d8.png +0 -0
- data/emoji/images/1f9d9-1f3fb.png +0 -0
- data/emoji/images/1f9d9-1f3fc.png +0 -0
- data/emoji/images/1f9d9-1f3fd.png +0 -0
- data/emoji/images/1f9d9-1f3fe.png +0 -0
- data/emoji/images/1f9d9-1f3ff.png +0 -0
- data/emoji/images/1f9d9.png +0 -0
- data/emoji/images/1f9da-1f3fb.png +0 -0
- data/emoji/images/1f9da-1f3fc.png +0 -0
- data/emoji/images/1f9da-1f3fd.png +0 -0
- data/emoji/images/1f9da-1f3fe.png +0 -0
- data/emoji/images/1f9da-1f3ff.png +0 -0
- data/emoji/images/1f9da.png +0 -0
- data/emoji/images/1f9db-1f3fb.png +0 -0
- data/emoji/images/1f9db-1f3fc.png +0 -0
- data/emoji/images/1f9db-1f3fd.png +0 -0
- data/emoji/images/1f9db-1f3fe.png +0 -0
- data/emoji/images/1f9db-1f3ff.png +0 -0
- data/emoji/images/1f9db.png +0 -0
- data/emoji/images/1f9dc-1f3fb.png +0 -0
- data/emoji/images/1f9dc-1f3fc.png +0 -0
- data/emoji/images/1f9dc-1f3fd.png +0 -0
- data/emoji/images/1f9dc-1f3fe.png +0 -0
- data/emoji/images/1f9dc-1f3ff.png +0 -0
- data/emoji/images/1f9dc.png +0 -0
- data/emoji/images/1f9dd-1f3fb.png +0 -0
- data/emoji/images/1f9dd-1f3fc.png +0 -0
- data/emoji/images/1f9dd-1f3fd.png +0 -0
- data/emoji/images/1f9dd-1f3fe.png +0 -0
- data/emoji/images/1f9dd-1f3ff.png +0 -0
- data/emoji/images/1f9dd.png +0 -0
- data/emoji/images/1f9de.png +0 -0
- data/emoji/images/1f9df.png +0 -0
- data/emoji/images/1f9e9.png +0 -0
- data/emoji/images/1fa74.png +0 -0
- data/emoji/images/1fa83.png +0 -0
- data/emoji/images/1fa84.png +0 -0
- data/emoji/images/1fa85.png +0 -0
- data/emoji/images/1fa86.png +0 -0
- data/emoji/images/1fa96.png +0 -0
- data/emoji/images/1fa97.png +0 -0
- data/emoji/images/1fa98.png +0 -0
- data/emoji/images/1fa99.png +0 -0
- data/emoji/images/1fa9a.png +0 -0
- data/emoji/images/1fa9b.png +0 -0
- data/emoji/images/1fa9c.png +0 -0
- data/emoji/images/1fa9d.png +0 -0
- data/emoji/images/1fa9e.png +0 -0
- data/emoji/images/1fa9f.png +0 -0
- data/emoji/images/1faa0.png +0 -0
- data/emoji/images/1faa1.png +0 -0
- data/emoji/images/1faa2.png +0 -0
- data/emoji/images/1faa3.png +0 -0
- data/emoji/images/1faa4.png +0 -0
- data/emoji/images/1faa5.png +0 -0
- data/emoji/images/1faa6.png +0 -0
- data/emoji/images/1faa7.png +0 -0
- data/emoji/images/1faa8.png +0 -0
- data/emoji/images/1fab0.png +0 -0
- data/emoji/images/1fab1.png +0 -0
- data/emoji/images/1fab2.png +0 -0
- data/emoji/images/1fab3.png +0 -0
- data/emoji/images/1fab4.png +0 -0
- data/emoji/images/1fab5.png +0 -0
- data/emoji/images/1fab6.png +0 -0
- data/emoji/images/1fac0.png +0 -0
- data/emoji/images/1fac1.png +0 -0
- data/emoji/images/1fac2.png +0 -0
- data/emoji/images/1fad0.png +0 -0
- data/emoji/images/1fad1.png +0 -0
- data/emoji/images/1fad2.png +0 -0
- data/emoji/images/1fad3.png +0 -0
- data/emoji/images/1fad4.png +0 -0
- data/emoji/images/1fad5.png +0 -0
- data/emoji/images/1fad6.png +0 -0
- data/emoji/images/2694.png +0 -0
- data/emoji/images/26f9-1f3fb.png +0 -0
- data/emoji/images/26f9-1f3fc.png +0 -0
- data/emoji/images/26f9-1f3fd.png +0 -0
- data/emoji/images/26f9-1f3fe.png +0 -0
- data/emoji/images/26f9-1f3ff.png +0 -0
- data/emoji/images/26f9.png +0 -0
- data/emoji/index.yml +283 -0
- data/lib/prawn/emoji.rb +17 -2
- data/lib/prawn/emoji/char.rb +39 -0
- data/lib/prawn/emoji/drawable.rb +9 -2
- data/lib/prawn/emoji/drawer.rb +36 -26
- data/lib/prawn/emoji/image.rb +24 -16
- data/lib/prawn/emoji/index.rb +1 -1
- data/lib/prawn/emoji/text.rb +10 -9
- data/lib/prawn/emoji/version.rb +1 -1
- data/prawn-emoji.gemspec +7 -15
- metadata +294 -112
- data/.travis.yml +0 -18
- data/lib/prawn/emoji/substitution.rb +0 -40
- data/lib/prawn/emoji/unicode.rb +0 -31
- data/test/fonts/DejaVuSans.ttf +0 -0
- data/test/fonts/IPA_Font_License_Agreement_v1.0.txt +0 -116
- data/test/fonts/ipag.ttf +0 -0
- data/test/pdf/emoji_rendering/expect.pdf +0 -0
- data/test/pdf/emoji_rendering/test_case.rb +0 -52
- data/test/pdf/prawn_integration/expect.pdf +0 -0
- data/test/pdf/prawn_integration/test_case.rb +0 -74
- data/test/pdf/test_helper.rb +0 -92
- data/test/units/prawn/emoji/drawable_test.rb +0 -25
- data/test/units/prawn/emoji/drawer_test.rb +0 -120
- data/test/units/prawn/emoji/image_test.rb +0 -32
- data/test/units/prawn/emoji/index_test.rb +0 -22
- data/test/units/prawn/emoji/substitution_test.rb +0 -37
- data/test/units/prawn/emoji/text_test.rb +0 -62
- data/test/units/prawn/emoji/unicode_test.rb +0 -50
- data/test/units/prawn/emoji_test.rb +0 -68
- data/test/units/test_helper.rb +0 -10
@@ -1,120 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
|
5
|
-
describe Prawn::Emoji::Drawer do
|
6
|
-
let(:document) { Prawn::Document.new }
|
7
|
-
let(:drawer) { Prawn::Emoji::Drawer.new(document) }
|
8
|
-
|
9
|
-
before do
|
10
|
-
document.font Prawn::Emoji.root.join 'test', 'fonts', 'DejaVuSans.ttf'
|
11
|
-
end
|
12
|
-
|
13
|
-
subject { drawer.draw(text, text_options) }
|
14
|
-
|
15
|
-
describe 'skip drawing' do
|
16
|
-
let(:text_options) { {} }
|
17
|
-
|
18
|
-
describe 'text is not utf8' do
|
19
|
-
let(:text) { 'a'.encode('ascii-8bit') }
|
20
|
-
it { _(subject).must_be_same_as text }
|
21
|
-
end
|
22
|
-
|
23
|
-
describe 'text does not include emoji' do
|
24
|
-
let(:text) { 'abcdefg' }
|
25
|
-
it { _(subject).must_be_same_as text }
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe 'text that contains supported emojis' do
|
30
|
-
let(:sushi) { '🍣' }
|
31
|
-
let(:sushi_unicode) { Prawn::Emoji::Unicode.new(sushi) }
|
32
|
-
let(:sushi_image) { Prawn::Emoji::Image.new(sushi_unicode, 12) }
|
33
|
-
let(:text_options) { { at: [100, 200], font_size: 12 } }
|
34
|
-
let(:sub_char) { Prawn::Emoji::Substitution.new(document) }
|
35
|
-
|
36
|
-
let(:text) { "aaa#{sushi}bbb#{sushi}#{sushi}ccc" }
|
37
|
-
|
38
|
-
it 'draws alternative images for each emoji included in the text' do
|
39
|
-
image_x_positions = [
|
40
|
-
100 + document.width_of('aaa', text_options),
|
41
|
-
100 + document.width_of("aaa#{sub_char}bbb", text_options),
|
42
|
-
100 + document.width_of("aaa#{sub_char}bbb#{sub_char}", text_options)
|
43
|
-
]
|
44
|
-
|
45
|
-
image_x_positions.each do |x|
|
46
|
-
position = [
|
47
|
-
sushi_image.adjust_x(x),
|
48
|
-
sushi_image.adjust_y(200)
|
49
|
-
]
|
50
|
-
mock(document).image(sushi_image.path, at: position, width: sushi_image.width).once
|
51
|
-
end
|
52
|
-
subject
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'returns text that all emoji has substituted' do
|
56
|
-
_(subject).must_equal "aaa#{sub_char}bbb#{sub_char}#{sub_char}ccc"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe 'text that contains unsupported emojis' do
|
61
|
-
let(:text) { '😴︎ is not supported' }
|
62
|
-
let(:text_options) { { at: [100, 200], font_size: 12 } }
|
63
|
-
|
64
|
-
it 'does not draw emoji' do
|
65
|
-
mock(document).image.never
|
66
|
-
subject
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'returns the original text' do
|
70
|
-
_(subject).must_equal text
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
describe 'text is empty' do
|
75
|
-
let(:text) { '' }
|
76
|
-
let(:text_options) { {} }
|
77
|
-
|
78
|
-
it { _(subject).must_be_same_as text }
|
79
|
-
end
|
80
|
-
|
81
|
-
describe 'preserve the original text' do
|
82
|
-
let(:text_options) { { at: [100, 200], font_size: 12 } }
|
83
|
-
let(:sub_char) { Prawn::Emoji::Substitution.new(document).to_s }
|
84
|
-
|
85
|
-
let(:emojis) { '🍣👨👨👦' }
|
86
|
-
|
87
|
-
describe 'ASCII Character' do
|
88
|
-
let(:ascii_33_79) { (33..79).map(&:chr).join }
|
89
|
-
let(:ascii_80_126) { (80..126).map(&:chr).join }
|
90
|
-
let(:text) {
|
91
|
-
[emojis, ascii_33_79, emojis, ascii_80_126, emojis].join
|
92
|
-
}
|
93
|
-
it { _(subject).must_equal [sub_char * 2, ascii_33_79, sub_char * 2, ascii_80_126, sub_char * 2].join }
|
94
|
-
end
|
95
|
-
|
96
|
-
describe 'Textual Emoji' do
|
97
|
-
let(:textual_emoji) { '▶' }
|
98
|
-
let(:emoji_with_text_presentation) { "\u{1f634}\u{FE0E}" }
|
99
|
-
let(:text) {
|
100
|
-
[
|
101
|
-
emojis, textual_emoji, emoji_with_text_presentation,
|
102
|
-
emojis, textual_emoji, emoji_with_text_presentation, emojis
|
103
|
-
].join
|
104
|
-
}
|
105
|
-
it do
|
106
|
-
_(subject).must_equal [
|
107
|
-
sub_char * 2, textual_emoji, emoji_with_text_presentation,
|
108
|
-
sub_char * 2, textual_emoji, emoji_with_text_presentation, sub_char * 2
|
109
|
-
].join
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
describe 'CJK' do
|
114
|
-
let(:japanese) { 'あいうえお日本語¥〇〒' }
|
115
|
-
let(:text) { [emojis, japanese, emojis, japanese, emojis].join }
|
116
|
-
|
117
|
-
it { _(subject).must_equal [sub_char * 2, japanese, sub_char * 2, japanese, sub_char * 2].join }
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
|
5
|
-
describe Prawn::Emoji::Image do
|
6
|
-
describe '#path' do
|
7
|
-
let(:emojis) { %w( 😀 © 🇯🇵 ) }
|
8
|
-
let(:emoji_unicodes) { emojis.map { |emoji| Prawn::Emoji::Unicode.new(emoji) } }
|
9
|
-
|
10
|
-
it 'possible to find the image file' do
|
11
|
-
emoji_unicodes.each do |emoji_unicode|
|
12
|
-
emoji_image = Prawn::Emoji::Image.new(emoji_unicode, 12)
|
13
|
-
assert File.exist?(emoji_image.path), "#{emoji_unicode} not found"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#adjust_x' do
|
19
|
-
subject { Prawn::Emoji::Image.new('🍣', 12).adjust_x(100) }
|
20
|
-
it { _(subject).must_equal 100.9 }
|
21
|
-
end
|
22
|
-
|
23
|
-
describe '#adjust_y' do
|
24
|
-
subject { Prawn::Emoji::Image.new('❤', 18).adjust_y(100) }
|
25
|
-
it { _(subject).must_equal 114.4 }
|
26
|
-
end
|
27
|
-
|
28
|
-
describe '#width' do
|
29
|
-
subject { Prawn::Emoji::Image.new('❤', 10).width }
|
30
|
-
it { _(subject).must_equal 8.5 }
|
31
|
-
end
|
32
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
require 'yaml'
|
5
|
-
|
6
|
-
describe Prawn::Emoji::Index do
|
7
|
-
let(:index) { Prawn::Emoji::Index.new }
|
8
|
-
|
9
|
-
describe '#codepoints' do
|
10
|
-
subject { index.codepoints }
|
11
|
-
|
12
|
-
let(:all_codes) { YAML.load_file(Prawn::Emoji.root.join('emoji', 'index.yml')) }
|
13
|
-
|
14
|
-
it { _(subject).must_equal all_codes }
|
15
|
-
end
|
16
|
-
|
17
|
-
describe '#include?' do
|
18
|
-
it { _(index.include?('0023-20e3')).must_equal true }
|
19
|
-
it { _(index.include?('3299')).must_equal true }
|
20
|
-
it { _(index.include?('unknown')).must_equal false }
|
21
|
-
end
|
22
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
|
5
|
-
describe Prawn::Emoji::Substitution do
|
6
|
-
let(:document) { Prawn::Document.new }
|
7
|
-
let(:font_size) { 12 }
|
8
|
-
let(:substitution) { Prawn::Emoji::Substitution.new(document) }
|
9
|
-
|
10
|
-
before do
|
11
|
-
document.font(font) if font
|
12
|
-
document.font_size = 12
|
13
|
-
end
|
14
|
-
|
15
|
-
subject { substitution.to_s }
|
16
|
-
|
17
|
-
describe 'When Japanese TTF font' do
|
18
|
-
let(:font) { Prawn::Emoji.root.join('test', 'fonts', 'ipag.ttf') }
|
19
|
-
|
20
|
-
it { _(subject).must_equal ' ' }
|
21
|
-
it { _(document.width_of(subject)).must_equal font_size }
|
22
|
-
end
|
23
|
-
|
24
|
-
describe 'When ASCII TTF font' do
|
25
|
-
let(:font) { Prawn::Emoji.root.join('test', 'fonts', 'DejaVuSans.ttf') }
|
26
|
-
|
27
|
-
it { _(subject).must_match(/^#{Prawn::Text::NBSP}+$/) }
|
28
|
-
it { _(document.width_of(subject)).must_be :>=, font_size - 1 }
|
29
|
-
it { _(document.width_of(subject)).must_be :<=, font_size + 1 }
|
30
|
-
end
|
31
|
-
|
32
|
-
describe 'When built-in AFM font' do
|
33
|
-
let(:font) { nil }
|
34
|
-
|
35
|
-
it { _ { subject }.must_raise Prawn::Errors::IncompatibleStringEncoding }
|
36
|
-
end
|
37
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
|
5
|
-
describe Prawn::Emoji::Text do
|
6
|
-
subject { Prawn::Emoji::Text.new(text) }
|
7
|
-
|
8
|
-
describe 'partition by emoji' do
|
9
|
-
let(:text) { 'leftleft🍣remaining'}
|
10
|
-
|
11
|
-
it { _(subject.left).must_equal 'leftleft' }
|
12
|
-
it { _(subject.remaining).must_equal 'remaining' }
|
13
|
-
it { _(subject.emoji).must_be_instance_of Prawn::Emoji::Unicode }
|
14
|
-
it { _(subject.emoji.to_s).must_equal '🍣' }
|
15
|
-
|
16
|
-
describe 'no emoji' do
|
17
|
-
let(:text) { 'abcd' }
|
18
|
-
|
19
|
-
it { _(subject.left).must_equal 'abcd' }
|
20
|
-
it { _(subject.emoji).must_be_nil }
|
21
|
-
it { _(subject.remaining).must_equal '' }
|
22
|
-
end
|
23
|
-
|
24
|
-
describe 'emoji only' do
|
25
|
-
let(:text) { '🎉' }
|
26
|
-
|
27
|
-
it { _(subject.left).must_equal '' }
|
28
|
-
it { _(subject.emoji.to_s).must_equal '🎉' }
|
29
|
-
it { _(subject.remaining).must_equal '' }
|
30
|
-
end
|
31
|
-
|
32
|
-
describe 'empty' do
|
33
|
-
let(:text) { '' }
|
34
|
-
|
35
|
-
it { _(subject.left).must_equal '' }
|
36
|
-
it { _(subject.emoji).must_be_nil }
|
37
|
-
it { _(subject.remaining).must_equal '' }
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe '#contains_emoji?' do
|
42
|
-
describe 'includes' do
|
43
|
-
let(:text) { '👍' }
|
44
|
-
it { _(subject).must_be :contains_emoji? }
|
45
|
-
end
|
46
|
-
|
47
|
-
describe 'not includes' do
|
48
|
-
let(:text) { 'text only' }
|
49
|
-
it { _(subject).wont_be :contains_emoji? }
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe '#left_with_emoji' do
|
54
|
-
let(:text) { 'aaaaaa📌bbbbbb' }
|
55
|
-
it { _(subject.left_with_emoji).must_equal 'aaaaaa📌' }
|
56
|
-
end
|
57
|
-
|
58
|
-
describe '#to_s' do
|
59
|
-
let(:text) { 'aaaaaa📌bbbbbb' }
|
60
|
-
it { _(subject.to_s).must_equal text }
|
61
|
-
end
|
62
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
|
5
|
-
describe Prawn::Emoji::Unicode do
|
6
|
-
def unicode(emoji)
|
7
|
-
Prawn::Emoji::Unicode.new(emoji)
|
8
|
-
end
|
9
|
-
|
10
|
-
describe '.format_codepoint' do
|
11
|
-
[
|
12
|
-
[%w(abcd), 'abcd'],
|
13
|
-
[%w(ABCD), 'abcd'],
|
14
|
-
[%w(a), '000a'],
|
15
|
-
[%w(1234 5678 9012), '1234-5678-9012'],
|
16
|
-
[%w(A B C), '000a-000b-000c']
|
17
|
-
].each do |(args, expect)|
|
18
|
-
it { _(Prawn::Emoji::Unicode.format_codepoint(args)).must_equal expect }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe '#==' do
|
23
|
-
it { _(unicode('🐟')).must_be :==, unicode('🐟') }
|
24
|
-
it { _(unicode('🐟')).wont_be :==, unicode('🍣') }
|
25
|
-
end
|
26
|
-
|
27
|
-
describe '#codepoint' do
|
28
|
-
it { _(unicode('🍣').codepoint).must_equal '1f363' }
|
29
|
-
it { _(unicode('🇯🇵').codepoint).must_equal '1f1ef-1f1f5' }
|
30
|
-
end
|
31
|
-
|
32
|
-
describe '#to_s' do
|
33
|
-
it { _(unicode('🍣').to_s).must_equal '🍣' }
|
34
|
-
it { _(unicode('❤️').to_s).must_equal "\u2764\ufe0f" }
|
35
|
-
end
|
36
|
-
|
37
|
-
describe 'delete variation selector' do
|
38
|
-
describe 'no selector' do
|
39
|
-
it { _(unicode("\u2600").codepoint).must_equal '2600' }
|
40
|
-
end
|
41
|
-
|
42
|
-
describe 'with text presentation selector' do
|
43
|
-
it { _(unicode("\u2600\ufe0e").codepoint).must_equal '2600' }
|
44
|
-
end
|
45
|
-
|
46
|
-
describe 'with emoji presentation selector' do
|
47
|
-
it { _(unicode("\u2600\ufe0f").codepoint).must_equal '2600' }
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'units/test_helper'
|
4
|
-
|
5
|
-
describe 'Prawn integration' do
|
6
|
-
describe 'Prawn::Document#text' do
|
7
|
-
it 'properly render text' do
|
8
|
-
pdf = Prawn::Document.new do |doc|
|
9
|
-
doc.font font_path('DejaVuSans.ttf')
|
10
|
-
doc.text 'sushi🍣teacup🍵'
|
11
|
-
|
12
|
-
doc.move_down 20
|
13
|
-
|
14
|
-
doc.font font_path('ipag.ttf')
|
15
|
-
doc.text '寿司🍣お茶🍵'
|
16
|
-
end
|
17
|
-
|
18
|
-
assert_properly_render_text(pdf)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe 'Prawn::Document#text_box' do
|
23
|
-
it 'properly render text' do
|
24
|
-
pdf = Prawn::Document.new do |doc|
|
25
|
-
doc.font font_path('DejaVuSans.ttf')
|
26
|
-
doc.text_box 'sushi🍣teacup🍵', at: [100, 100], width: 500
|
27
|
-
|
28
|
-
doc.font font_path('ipag.ttf')
|
29
|
-
doc.text_box '寿司🍣お茶🍵', at: [100, 300], width: 500
|
30
|
-
end
|
31
|
-
|
32
|
-
assert_properly_render_text(pdf)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe 'Prawn::Document#draw_text' do
|
37
|
-
it 'properly render text' do
|
38
|
-
pdf = Prawn::Document.new do |doc|
|
39
|
-
doc.font font_path('DejaVuSans.ttf')
|
40
|
-
doc.draw_text 'sushi🍣teacup🍵', at: [100, 100]
|
41
|
-
|
42
|
-
doc.font font_path('ipag.ttf')
|
43
|
-
doc.draw_text '寿司🍣お茶🍵', at: [100, 300]
|
44
|
-
end
|
45
|
-
|
46
|
-
assert_properly_render_text(pdf)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def assert_properly_render_text(pdf)
|
51
|
-
pdf_strings = extract_strings(pdf.render)
|
52
|
-
|
53
|
-
_(pdf_strings).must_include "sushi#{nbsp * 3}teacup#{nbsp * 3}"
|
54
|
-
_(pdf_strings).must_include "寿司 お茶 "
|
55
|
-
end
|
56
|
-
|
57
|
-
def font_path(name)
|
58
|
-
Prawn::Emoji.root.join 'test', 'fonts', name
|
59
|
-
end
|
60
|
-
|
61
|
-
def extract_strings(pdf)
|
62
|
-
PDF::Inspector::Text.analyze(pdf).strings
|
63
|
-
end
|
64
|
-
|
65
|
-
def nbsp
|
66
|
-
Prawn::Text::NBSP
|
67
|
-
end
|
68
|
-
end
|