class Samovar::Split

Attributes

default[R]
description[R]
key[R]
marker[R]
required[R]

Public Class Methods

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

Public Instance Methods

parse(input, parent = nil, default = nil) click to toggle source
# File lib/samovar/split.rb, line 38
def parse(input, parent = nil, default = nil)
        if offset = input.index(@marker)
                input.pop(input.size - offset).tap(&:shift)
        elsif default ||= @default
                return default
        elsif @required
                raise MissingValueError.new(parent, self)
        end
end
to_a() click to toggle source
# File lib/samovar/split.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/split.rb, line 22
def to_s
        "#{@marker} <#{@key}...>"
end