class Samovar::Many

Attributes

default[R]
description[R]
key[R]
required[R]
stop[R]

Public Class Methods

new(key, description = nil, stop: /^-/, default: nil, required: false) click to toggle source
# File lib/samovar/many.rb, line 8
def initialize(key, description = nil, stop: /^-/, default: nil, required: false)
        @key = key
        @description = description
        @stop = stop
        @default = default
        @required = required
end

Public Instance Methods

parse(input, parent = nil, default = nil) click to toggle source
# File lib/samovar/many.rb, line 38
def parse(input, parent = nil, default = nil)
        if @stop and stop_index = input.index{|item| @stop === item}
                input.shift(stop_index)
        elsif input.any?
                input.shift(input.size)
        elsif default ||= @default
                return default
        elsif @required
                raise MissingValueError.new(parent, self)
        end
end
to_a() click to toggle source
# File lib/samovar/many.rb, line 26
def to_a
        usage = [to_s, @description]
        
        if @default
                usage << "(default: #{@default.inspect})"
        elsif @required
                usage << "(required)"
        end
        
        return usage
end
to_s() click to toggle source
# File lib/samovar/many.rb, line 22
def to_s
        "<#{key}...>"
end