Module: ARGVEXT::EXTENSION

Defined in:
lib/argv/ext.rb

Instance Method Summary collapse

Instance Method Details

#flagsObject Also known as: flag, tags, keys



53
54
55
# File 'lib/argv/ext.rb', line 53

def flags
  self.select { |e| e[0].include?('-') }
end

#sym_flagsObject Also known as: flag_syms, flag_sym, tag_syms, key_syms



61
62
63
# File 'lib/argv/ext.rb', line 61

def sym_flags
  self.flags.map { |e| e.to_s.dup.gsub!(/^-*/,'').to_sym }
end

#to_hash(opts = {}) ⇒ Object Also known as: flagtag, flagtags

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/argv/ext.rb', line 5

def to_hash opts= {}
  raise(ArgumentError) unless opts.class <= Hash

  opts[:sym_key]      ||= opts[:sk] ||  opts[:sym]  || opts[:s]
  opts[:multi_value]  ||= opts[:mv] ||  opts[:m]

  return_obj= {}
  self.count.times do |index|
    unless opts[:multi_value]

      next if self[index+1].nil?
      if self[index][0].include?('-') && !self[index+1][0].include?('-')
        return_obj[( opts[:sym_key] ?  self[index].to_s.dup.gsub!(/^-*/,'').to_sym :  self[index] )]= self[index+1]
      end

    else

      begin

        if self[index][0].include?('-') && !self[index+1][0].include?('-')

          new_element= []
          index_at= index+1
          loop do
            if self[index_at].nil? || self[index_at].to_s[0].include?('-')
              break
            else
              new_element.push(self[index_at])
            end
            index_at += 1
          end
          return_obj[( opts[:sym_key] ?  self[index].to_s.dup.gsub!(/^-*/,'').to_sym :  self[index] )]= new_element

        end

      rescue
      end


    end
  end
  return return_obj

end

#valuesObject



70
71
72
# File 'lib/argv/ext.rb', line 70

def values
  self.select { |e| !e[0].include?('-') }
end