Module: OptionBinder::Handler

Included in:
OptionBinder
Defined in:
lib/optbind/handler.rb

Instance Method Summary collapse

Instance Method Details

#included_in(*a) ⇒ Object Also known as: in



10
11
12
13
# File 'lib/optbind/handler.rb', line 10

def included_in(*a)
  -> (v) { a[0].include? v ? v : raise(OptionParser::InvalidArgument, v) if v } if a[0].is_a? Range
  -> (v) { a.flatten.include?(v) ? v : raise(OptionParser::InvalidArgument, v) if v }
end

#listed_as(t) ⇒ Object Also known as: lists



17
18
19
20
21
22
23
24
25
26
# File 'lib/optbind/handler.rb', line 17

def listed_as(t)
  -> (v) do
    begin
      b, p = nil, OptionParser.new.on(:REQUIRED, '--0', t, &-> (i) { b = i })
      (v.is_a?(Array) ? v : v.to_s.split(/,/)).map { |i| p.parse! %W(--0=#{i}) and b } if v
    rescue OptionParser::InvalidArgument
      raise $!.tap { |e| e.args[0] = e.args[0].sub(/\A--\d+=/, '') }
    end
  end
end

#matched_by(p) ⇒ Object Also known as: matches



4
5
6
# File 'lib/optbind/handler.rb', line 4

def matched_by(p)
  -> (v) { p =~ v.to_s ? v : raise(OptionParser::InvalidArgument, v) if v }
end