Module: Emoji::CLI
Constant Summary collapse
- InvalidUsage =
Class.new(RuntimeError)
- VALID_SIZES =
[ 20, 32, 40, 48, 64, 96, 160 ]
Instance Method Summary collapse
Instance Method Details
#dispatch(argv) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/emoji/cli.rb', line 11 def dispatch(argv) cmd = argv[0] argv = argv[1..-1] case cmd when "extract" public_send(cmd, argv) when "help", "--help", "-h" help else raise InvalidUsage end return 0 rescue InvalidUsage, OptionParser::InvalidArgument, OptionParser::InvalidOption => err unless err. == err.class.to_s $stderr.puts err. $stderr.puts end $stderr.puts usage_text return 1 end |
#extract(argv) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/emoji/cli.rb', line 40 def extract(argv) size = 64 OptionParser.new do |opts| opts.on("--size=#{size}", Integer) do |val| if VALID_SIZES.include?(val) size = val else raise InvalidUsage, "size should be one of: #{VALID_SIZES.join(', ')}" end end end.parse!(argv) raise InvalidUsage unless argv.size == 1 path = argv[0] Emoji::Extractor.new(size, path).extract! Dir["#{Emoji.images_path}/*.png"].each do |png| FileUtils.cp(png, File.join(path, File.basename(png))) end end |
#help ⇒ Object
34 35 36 |
# File 'lib/emoji/cli.rb', line 34 def help puts usage_text end |
#usage_text ⇒ Object
62 63 64 65 66 |
# File 'lib/emoji/cli.rb', line 62 def usage_text <<EOF Usage: gemoji extract <path> [--size=64] EOF end |