Sha256: 8358ae45902647051c8542d9c00ebd2f05f85bfc464d635f7555a6ca0cb3a4da

Contents?: true

Size: 973 Bytes

Versions: 2

Compression:

Stored size: 973 Bytes

Contents

require "optparse"
module Charwidth
  class CLI
    def self.run(argv)
      new.run(argv)
    end

    def run(argv)
      options = {}
      optparse = OptionParser.new do |o|
        o.banner += " TEXT\nNormalize character width in arguments or STDIN.\nAvailable character types are #{Charwidth::ClassMethods::TYPES.join(",")}."
        o.on("--only=TYPES", "Comma separated character types that should be converted") {|types| options[:only] = types.split(",").map(&:to_sym) }
        o.on("--except=TYPES", "Comma separated character types that should not be converted") {|types| options[:except] = types.split(",").map(&:to_sym) }
        o.parse!(argv)
      end
      src = nil
      if ARGV.empty?
        if $stdin.tty?
          warn optparse.banner
          warn optparse.help
          exit 1
        else
          src = $stdin.read
        end
      else
        src = ARGV.join(" ")
      end
      print Charwidth.normalize(src, options)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
charwidth-0.2.1 lib/charwidth/cli.rb
charwidth-0.2.0 lib/charwidth/cli.rb