Sha256: b34198ef51494e3135bb817ab7dc267d1a2936e711c7abbd9491a5f9dc696bf9

Contents?: true

Size: 1.78 KB

Versions: 3

Compression:

Stored size: 1.78 KB

Contents

PostageApp::CLI::Command.define do
  argument :'no-header',
    optional: true,
    boolean: true,
    desc: 'An identifier to refer to this mailbox on subsequent API calls'

  argument :markdown,
    optional: true,
    boolean: true,
    desc: 'Emit markdown formatted description of variables'

  perform do |arguments|
    if (arguments[:markdown])
      PostageApp::Configuration.params.each do |param, config|
        case (default = config[:default])
        when Proc
          default = default.call
        end

        puts '* `%s`: %s (%s)' % [
          param,
          config[:desc],
          case (config[:required])
          when String
            'required %s' % config[:required]
          when true
            'required'
          else
            default ? 'default: `%s`' % default : 'optional'
          end
        ]

        config[:aliases]&.each do |param_alias|
          puts '* `%s`: Alias for `%s`' % [
            param_alias,
            param
          ]
        end
      end
    else
      unless (arguments[:'no-header'])
        puts '%-40s %s' % [ 'Variable', 'Description' ]
        puts '-' * 78
      end
  
      PostageApp::Configuration.params.each do |param, config|
        case (default = config[:default])
        when Proc
          default = default.call
        end

        puts '%-40s %s (%s)' % [
          param,
          config[:desc],
          case (config[:required])
          when String
            'required %s' % config[:required]
          when true
            'required'
          else
            default ? 'default: %s' % default : 'optional'
          end
        ]

        config[:aliases]&.each do |param_alias|
          puts '%-40s Alias for %s' % [
            param_alias,
            param
          ]
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
postageapp-1.4.2 lib/postageapp/cli/command/config.rb
postageapp-1.4.1 lib/postageapp/cli/command/config.rb
postageapp-1.4.0 lib/postageapp/cli/command/config.rb