Sha256: 7bd2237fb44c6c428a704ff7ae89462c15551f42c3843aa89aa691857a59eda9

Contents?: true

Size: 931 Bytes

Versions: 1

Compression:

Stored size: 931 Bytes

Contents

module RProgram
  class NonOption

    # Name of the argument(s)
    attr_reader :name

    # Is the argument a leading argument(s)
    attr_reader :leading

    # Is the argument a tailing argument(s)
    attr_reader :tailing

    # Can the argument be specified multiple times
    attr_reader :multiple

    def initialize(opts={:name => nil, :leading => false, :tailing => false, :multiple => false})
      @name = opts[:name]

      @leading = opts[:leading] || false
      @tailing = opts[:tailing] || true
      @multiple = opts[:multiple] || false
    end

    def arguments(value)
      return [] if (value==nil || value==false)

      if value.kind_of?(Hash)
        return value.map { |name,value| "#{name}=#{value}" }
      elsif value.kind_of?(Array)
        if @multiple
          return value.compact
        else
          return value.join
        end
      else
        return [value]
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rprogram-0.0.9 lib/rprogram/non_option.rb