Sha256: 2fe6a2f0b57f954d16a8697b332c03a0c82881be259f43f831d8e0d8fcbcd9b6

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

module Opener
  class KafToJson
    ##
    # CLI wrapper around {Opener::KafToJson} using Slop.
    #
    # @!attribute [r] parser
    #  @return [Slop]
    #
    class CLI
      attr_reader :parser

      def initialize
        @parser = configure_slop
      end

      ##
      # @param [Array] argv
      #
      def run(argv = ARGV)
        parser.parse(argv)
      end

      ##
      # @return [Slop]
      #
      def configure_slop
        return Slop.new(:strict => false, :indent => 2, :help => true) do
          banner 'Usage: kaf2json [OPTIONS]'

          separator <<-EOF.chomp

About:

    Component that converts a given KAF document into a JSON object.
    This command reads input from STDIN.

Example:

    cat some_file.kaf | kaf2json
          EOF

          separator "\nOptions:\n"

          on :v, :version, 'Shows the current version' do
            abort "kaf2json v#{VERSION} on #{RUBY_DESCRIPTION}"
          end

          run do |opts, args|
            converter = KafToJson.new
            input     = STDIN.tty? ? nil : STDIN.read

            puts converter.run(input)
          end
        end
      end
    end # CLI
  end # KafToJson
end # Opener

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
opener-kaf2json-2.0.2-java lib/opener/kaf_to_json/cli.rb
opener-kaf2json-2.0.1-java lib/opener/kaf_to_json/cli.rb
opener-kaf2json-2.0.0-java lib/opener/kaf_to_json/cli.rb