argv 1.1.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6d3305ab1c2290e56cc9749439775e019de80cd
4
- data.tar.gz: 7bb4f9174d881d688a34899fdea86c86f8dca300
3
+ metadata.gz: 6bda76d6b927be05fc63143b9bde823c8c397bd9
4
+ data.tar.gz: 2afca9cf6493a55f328532b75a59e31cb0cd643c
5
5
  SHA512:
6
- metadata.gz: d9ddd7515b54d4a16c826e3ccbfac4984a54e8df7b4fe358fc2b2f7af88d40d335dde8ae9b45b7ee7f42306904a173036b90fc6ae5d59ccc61e33852024e0bd7
7
- data.tar.gz: d7419e12eaac5a53391dc74ba0f02b716b406cc9d7b84f1aaaf63823db092af4bb191ee61f60fcec1263a2119f11b32265d4f893db47c36902220f83b17326a9
6
+ metadata.gz: a0becc8a32de3cfd6f5495f7c4e0fa17db6d6462f74f15a5001a140e6cf03d776a9625bd9d79e502a9493d54b18dd0e432ff39098f46809eb9c3a902c5283bb7
7
+ data.tar.gz: 6adf6f6ab00b2e021f9c4dedcab2bc41f5673445b02bb71124908da494772b3c7e6e9749d58c76a27be0697061d68af86fb05bd7014c070dc8cfb810a58996e3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- argv (1.1.1)
4
+ argv (2.1.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/README.md CHANGED
@@ -10,51 +10,55 @@ With this extension module, you can parse in an easy way the script input tags
10
10
 
11
11
  require 'argv'
12
12
 
13
- #> $ script.rb --test this --hello world --sup
13
+ #$ ruby sample/test.rb --test test this ok
14
14
 
15
- puts ARGV.flag_tags
16
- # {"--test"=>"this", "--hello"=>"world"}
15
+ puts ARGV.to_hash
16
+ # {"--test"=>"test"}
17
17
 
18
- puts ARGV.flags.inspect
19
- # ["--test", "--hello", "--sup"]
20
-
21
- ```
22
-
23
- ```ruby
18
+ puts ARGV.to_hash( multi_value: true )
19
+ # {"--test"=>["test", "this", "ok"]}
24
20
 
21
+ puts ARGV.to_hash( sym_key: true )
22
+ # {:test=>"test"}
25
23
 
26
- #> $ script.rb --test this --hello world --su-p asd sdsd -asd -dsa
24
+ puts ARGV.to_hash( s: true, m: true )
25
+ # {:test=>["test", "this", "ok"]}
27
26
 
28
27
  puts ARGV.values.inspect
29
- #> ["this", "world", "asd", "sdsd"]
28
+ # ["test", "this", "ok"]
30
29
 
31
- puts ARGV.flagtags sym_key: true
32
- #> {:test=>"this", :hello=>"world", :"su-p"=>"asd"}
30
+ puts ARGV.keys.inspect
31
+ # ["--test"]
33
32
 
33
+ puts ARGV.flag_syms.inspect
34
+ # [:test, :test, :this, :ok]
34
35
 
35
36
  ```
36
37
 
37
- ```ruby
38
-
38
+ #### For Modules
39
39
 
40
- #> $ script.rb --test this this multi value --hello world asdf
40
+ if you write module and you want to have some custom tags and help msg for that,
41
+ use the following example
41
42
 
42
- puts ARGV.values.inspect
43
- #> ["this", "world", "asd", "sdsd"]
44
-
45
- puts ARGV.flagtags sym_key: true
46
- #> {:test=>"this", :hello=>"world", :"su-p"=>"asd"}
43
+ ```ruby
47
44
 
45
+ require 'argv'
48
46
 
49
- ```
47
+ ARGVEXT.add_help_msg "This will show you the help msg (this)",:helper,:help,:h
50
48
 
51
- ### multi value use case
49
+ #
50
+ # ARGVEXT.help_msg or show_help will read on your values and will produce the following with this example
51
+ #
52
+ # This will show you the help msg (this)
53
+ # --helper
54
+ # --help
55
+ # -h
52
56
 
53
- ```ruby
57
+ # this will run on the terminal and break Process,
58
+ # if the user give one of the helper tags as argv
54
59
 
55
- #> $ script.rb --test this --hello world --su-p asd sdsd -asd -dsa
60
+ ```
56
61
 
57
- puts ARGV.flag_multi_value.inspect
58
- #> {"--test"=>["this"], "--hello"=>["world"], "--su-p"=>["asd", "sdsd"]}
62
+ ### Test
59
63
 
60
- ```
64
+ * you can find a test file in the sample named as "test"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 2.1.0
@@ -1,70 +1,2 @@
1
- module ARGVEXT
2
-
3
- def flag_tags opts= {}
4
- raise(ArgumentError) unless opts.class <= Hash
5
-
6
- opts[:sym_key] ||= opts[:sym] || opts[:sk] || opts[:s]
7
-
8
- return_obj= {}
9
- self.count.times do |index|
10
-
11
- next if self[index+1].nil?
12
- if self[index][0].include?('-') && !self[index+1][0].include?('-')
13
- return_obj[( opts[:sym_key] ? self[index].dup.to_s.gsub!(/^-*/,'').to_sym : self[index] )]= self[index+1]
14
- end
15
-
16
- end
17
- return return_obj
18
-
19
- end
20
- alias :flag_value :flag_tags
21
- alias :flag_tag :flag_tags
22
- alias :flagtag :flag_tags
23
- alias :flagtags :flag_tags
24
-
25
- def flag_multi_value opts= {}
26
- raise(ArgumentError) unless opts.class <= Hash
27
-
28
- opts[:sym_key] ||= opts[:sym] || opts[:sk] || opts[:s]
29
-
30
-
31
- return_obj= {}
32
- self.count.times do |index|
33
-
34
- begin
35
-
36
- if self[index][0].include?('-') && !self[index+1][0].include?('-')
37
-
38
- new_element= []
39
- index_at= index+1
40
- loop do
41
- if self[index_at].nil? || self[index_at].to_s[0].include?('-')
42
- break
43
- else
44
- new_element.push(self[index_at])
45
- end
46
- index_at += 1
47
- end
48
- return_obj[( opts[:sym_key] ? self[index].dup.to_s.gsub!(/^-*/,'').to_sym : self[index] )]= new_element
49
-
50
- end
51
-
52
- rescue
53
- end
54
-
55
- end
56
- return return_obj
57
-
58
- end
59
-
60
- def flags
61
- self.select { |e| e[0].include?('-') }
62
- end
63
-
64
- def values
65
- self.select { |e| !e[0].include?('-') }
66
- end
67
-
68
- end
69
-
70
- ARGV.__send__ :extend,ARGVEXT
1
+ require 'argv/ext'
2
+ require 'argv/cms'
@@ -0,0 +1,33 @@
1
+ module ARGVEXT
2
+ class << self
3
+
4
+ @@help_msg_obj ||= []
5
+ def add_help_msg msg,*keys
6
+ raise unless msg.class <= String
7
+ @@help_msg_obj.push [msg,keys]
8
+ return nil
9
+ end
10
+
11
+ def help_msg
12
+
13
+ helper_sym= [:helper,:help,:h]
14
+ self.add_help_msg "This will show you the help msg (this)",*helper_sym
15
+ unless ::ARGV.sym_flags.select{ |e| helper_sym.include?(e) }.empty?
16
+
17
+ tmp_ary= []
18
+ @@help_msg_obj.each{ |ary|
19
+ tmp_ary.push(ary[0])
20
+ ary[1].each{|e| tmp_ary.push( ( e.to_s.length == 1 ? "-#{e}" : "--#{e}" ) )}
21
+ tmp_ary.push("")
22
+ }
23
+
24
+ tmp_ary.each{ |element| element.include?('--') ? element.gsub!('--',"\t--") : element.gsub!('-',"\t -")}
25
+ puts "",tmp_ary.join("\n"),""
26
+ Process.exit!
27
+
28
+ end
29
+ end
30
+ alias :show_help :help_msg
31
+
32
+ end
33
+ end
@@ -0,0 +1,77 @@
1
+ module ARGVEXT
2
+
3
+ module EXTENSION
4
+
5
+ def to_hash opts= {}
6
+ raise(ArgumentError) unless opts.class <= Hash
7
+
8
+ opts[:sym_key] ||= opts[:sk] || opts[:sym] || opts[:s]
9
+ opts[:multi_value] ||= opts[:mv] || opts[:m]
10
+
11
+ return_obj= {}
12
+ self.count.times do |index|
13
+ unless opts[:multi_value]
14
+
15
+ next if self[index+1].nil?
16
+ if self[index][0].include?('-') && !self[index+1][0].include?('-')
17
+ return_obj[( opts[:sym_key] ? self[index].to_s.dup.gsub!(/^-*/,'').to_sym : self[index] )]= self[index+1]
18
+ end
19
+
20
+ else
21
+
22
+ begin
23
+
24
+ if self[index][0].include?('-') && !self[index+1][0].include?('-')
25
+
26
+ new_element= []
27
+ index_at= index+1
28
+ loop do
29
+ if self[index_at].nil? || self[index_at].to_s[0].include?('-')
30
+ break
31
+ else
32
+ new_element.push(self[index_at])
33
+ end
34
+ index_at += 1
35
+ end
36
+ return_obj[( opts[:sym_key] ? self[index].to_s.dup.gsub!(/^-*/,'').to_sym : self[index] )]= new_element
37
+
38
+ end
39
+
40
+ rescue
41
+ end
42
+
43
+
44
+ end
45
+ end
46
+ return return_obj
47
+
48
+ end
49
+
50
+ alias :flagtag :to_hash
51
+ alias :flagtags :to_hash
52
+
53
+ def flags
54
+ self.select { |e| e[0].include?('-') }
55
+ end
56
+
57
+ alias :flag :flags
58
+ alias :tags :flags
59
+ alias :keys :flags
60
+
61
+ def sym_flags
62
+ self.flags.map { |e| e.to_s.dup.gsub!(/^-*/,'').to_sym }
63
+ end
64
+
65
+ alias :flag_syms :sym_flags
66
+ alias :flag_sym :sym_flags
67
+ alias :tag_syms :sym_flags
68
+ alias :key_syms :sym_flags
69
+
70
+ def values
71
+ self.select { |e| !e[0].include?('-') }
72
+ end
73
+
74
+ end
75
+
76
+ end
77
+ ARGV.__send__ :extend,ARGVEXT::EXTENSION
@@ -1,9 +1,26 @@
1
- require_relative "../lib/configer.rb"
1
+ require "argv"
2
2
 
3
- Configer.mount_yaml
4
- Configer.mount_json
3
+ #$ ruby sample/test.rb --test test this ok
4
+ ARGVEXT.help_msg
5
5
 
6
- configer #> config
6
+ puts "","original ARGV:",ARGV.inspect,""
7
7
 
8
- # for example we can call the root/sample/meta/test.yml file parsed data as
9
- puts configer.sample.meta.test #> { hello: world }
8
+ puts "hash from argv:",ARGV.to_hash,""
9
+ # {"--test"=>"test"}
10
+
11
+ puts "multi valued hash:",ARGV.to_hash( multi_value: true ),""
12
+ # {"--test"=>["test", "this", "ok"]}
13
+
14
+ puts "sym keyed hash:",ARGV.to_hash( sym_key: true ),""
15
+ # {:test=>"test"}
16
+
17
+ puts "sym keyed multi valued hash:",ARGV.to_hash( s: true, m: true ),""
18
+ # {:test=>["test", "this", "ok"]}
19
+
20
+ puts "argv values without the tags:",ARGV.values.inspect,""
21
+ # ["test", "this", "ok"]
22
+
23
+ puts "argv tags, \"keys\":",ARGV.keys.inspect,""
24
+ # ["--test"]
25
+
26
+ puts "symbolized flags:",ARGV.sym_flags.inspect,""
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: argv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
@@ -55,6 +55,8 @@ files:
55
55
  - VERSION
56
56
  - argv.gemspec
57
57
  - lib/argv.rb
58
+ - lib/argv/cms.rb
59
+ - lib/argv/ext.rb
58
60
  - sample/test.rb
59
61
  homepage:
60
62
  licenses: []