argparser 2.0.0.RC1 → 2.0.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 +4 -4
- data/HISTORY.md +1 -5
- data/Rakefile +5 -5
- data/argparser.gemspec +1 -5
- data/lib/argparser/arg_parser.rb +4 -4
- data/lib/argparser/argument.rb +11 -19
- data/lib/argparser/option.rb +0 -1
- data/lib/argparser/version.rb +1 -1
- data/spec/argparser_spec.rb +0 -2
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad223f706456638717baa527d93477d0dba2a98f
|
4
|
+
data.tar.gz: 7521d0a1ddff3586dbe24ba63d88b3a0b59e7bba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3829a2778d6c4a4b807fb15980e7e6d52030ed2d04c90eb07409ca20ab835b6f78accc13c6dcd2dd1d5adb19371810856a7fd1d2acae25c56e60b4e107bb088d
|
7
|
+
data.tar.gz: 9924ff1ae529bce199fb1c6b0383d1106dda42ac5a98a9391c92859622285ab0e7781eae5f6094fb3ece5c4ac87fc5c45f38cd2fda9647b098b73604e3c47af3
|
data/HISTORY.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# 2.0.0
|
1
|
+
# 2.0.0
|
2
2
|
2015-04-28 Holidays
|
3
3
|
|
4
4
|
* All exclamation marks removed from method names
|
@@ -7,10 +7,6 @@
|
|
7
7
|
* `Option/Argument#value` now is read-only
|
8
8
|
* `Option/Argument#value?` now returns true in case of parsed option w/o param
|
9
9
|
* Block(name, value) in `#parse`
|
10
|
-
|
11
|
-
# 2.0.0.RC1
|
12
|
-
2015-04-28 Holidays
|
13
|
-
|
14
10
|
* Major version changed due to extensive renamings and removals
|
15
11
|
* Whitespace in option names no longer stripped
|
16
12
|
* Separate classes for options and arguments
|
data/Rakefile
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
require 'rake/testtask'
|
3
3
|
|
4
4
|
Rake::TestTask.new :test do |t|
|
5
|
-
# t.test_files = FileList['spec/*_spec.rb']
|
6
5
|
t.pattern = 'spec/**/*_spec.rb'
|
7
6
|
t.libs.push 'spec'
|
8
7
|
end
|
9
8
|
|
10
9
|
task :build do
|
11
10
|
system('gem build argparser.gemspec')
|
12
|
-
# gem push argparser-1.0.0.gem
|
13
|
-
# gem uninstall argparser
|
14
|
-
# gem install argparser-1.0.0.gem
|
15
11
|
end
|
16
12
|
|
17
|
-
task :
|
13
|
+
task :lint do
|
14
|
+
system('rubocop -f s')
|
15
|
+
end
|
16
|
+
|
17
|
+
task :default => :test
|
data/argparser.gemspec
CHANGED
@@ -15,12 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.require_paths = ['lib']
|
16
16
|
s.bindir = 'bin'
|
17
17
|
s.executables = `git ls-files -- bin/`.split("\n").map{|f| File.basename(f)}
|
18
|
-
# s.extra_rdoc_files = 'README.md'
|
19
|
-
# s.rdoc_options << '--title' << 'argparser' <<
|
20
|
-
# '--main' << 'README' <<
|
21
|
-
# '--markup' << 'markdown' <<
|
22
|
-
# '--line-numbers'
|
23
18
|
s.add_development_dependency 'bundler', '~> 1.7'
|
24
19
|
s.add_development_dependency 'rake', '~> 10.1'
|
25
20
|
s.add_development_dependency 'minitest', '~> 4.7'
|
21
|
+
s.add_development_dependency 'rubocop', '~> 0.30'
|
26
22
|
end
|
data/lib/argparser/arg_parser.rb
CHANGED
@@ -48,6 +48,7 @@ class ArgParser
|
|
48
48
|
def manifest=(manifest)
|
49
49
|
@@manifest = manifest
|
50
50
|
end
|
51
|
+
|
51
52
|
def manifest
|
52
53
|
@@manifest ||= {}
|
53
54
|
end
|
@@ -71,7 +72,7 @@ class ArgParser
|
|
71
72
|
end
|
72
73
|
|
73
74
|
def initialize(manifest)
|
74
|
-
hash2vars(
|
75
|
+
hash2vars(ArgParser.manifest.merge(manifest))
|
75
76
|
@arguments =
|
76
77
|
(@arguments || []).map {|o| o.kind_of?(Argument) ? o : Argument.new(o)}
|
77
78
|
@options =
|
@@ -86,9 +87,8 @@ class ArgParser
|
|
86
87
|
_check_manifest
|
87
88
|
|
88
89
|
OPTS_RESERVED.each do |res|
|
89
|
-
name
|
90
|
-
|
91
|
-
terminate(0, self.send(res[:func]))
|
90
|
+
next if !argv.include?("--#{res[:name]}") || self[res[:name]]
|
91
|
+
terminate(0, send(res[:func]))
|
92
92
|
end
|
93
93
|
|
94
94
|
args = argv.dup
|
data/lib/argparser/argument.rb
CHANGED
@@ -5,16 +5,16 @@ class ArgParser
|
|
5
5
|
include Tools
|
6
6
|
|
7
7
|
# These attrs are from the manifest that is applied through constructor
|
8
|
-
attr_reader
|
9
|
-
attr_reader
|
10
|
-
attr_reader
|
11
|
-
attr_reader
|
12
|
-
attr_reader
|
13
|
-
attr_reader
|
8
|
+
attr_reader :name
|
9
|
+
attr_reader :help # Help string
|
10
|
+
attr_reader :validate # Proc(this, parser) to validate a value
|
11
|
+
attr_reader :default # Default value
|
12
|
+
attr_reader :required # Required
|
13
|
+
attr_reader :multiple # May occur multiple times?
|
14
14
|
|
15
15
|
# These attrs have their meaning after parsing was done
|
16
|
-
attr_reader
|
17
|
-
attr_reader
|
16
|
+
attr_reader :count # Occucences
|
17
|
+
attr_reader :value # Value (Array if multiple)
|
18
18
|
|
19
19
|
# Just helper
|
20
20
|
def names
|
@@ -25,7 +25,7 @@ class ArgParser
|
|
25
25
|
def initialize(o_manifest)
|
26
26
|
hash2vars(o_manifest)
|
27
27
|
reset
|
28
|
-
raise ManifestError, ERR_OPTION_NULL if !name
|
28
|
+
raise ManifestError, ERR_OPTION_NULL if !name || name.strip.empty?
|
29
29
|
end
|
30
30
|
|
31
31
|
def synopsis
|
@@ -63,20 +63,12 @@ class ArgParser
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def printed_help
|
66
|
-
s
|
67
|
-
s << "\n\tDefaults to: #{get_default}" if default
|
68
|
-
"%s\n\t%s" % [synopsis, s]
|
66
|
+
"%s\n\t%s" % [synopsis, (help || '')]
|
69
67
|
end
|
70
68
|
|
71
69
|
# Set value to default one if no value provided
|
72
70
|
def set_default
|
73
|
-
|
74
|
-
add_value(get_default)
|
75
|
-
end
|
76
|
-
|
77
|
-
# Get default value
|
78
|
-
def get_default
|
79
|
-
default.respond_to?(:call) ? default.call : default
|
71
|
+
(!default || value?) ? self : add_value(default)
|
80
72
|
end
|
81
73
|
end
|
82
74
|
end
|
data/lib/argparser/option.rb
CHANGED
data/lib/argparser/version.rb
CHANGED
data/spec/argparser_spec.rb
CHANGED
@@ -83,7 +83,6 @@ A Example
|
|
83
83
|
OPTIONS:
|
84
84
|
[-m, --mode first|second|third]...
|
85
85
|
\tExample mode.
|
86
|
-
\tDefaults to: first
|
87
86
|
[--help]
|
88
87
|
\tPrint this help and exit.
|
89
88
|
[--version]
|
@@ -91,7 +90,6 @@ OPTIONS:
|
|
91
90
|
ARGUMENTS:
|
92
91
|
[file]
|
93
92
|
\tFilename or - for stdin.
|
94
|
-
\tDefaults to: -
|
95
93
|
Report bugs to: https://github.com/sinm/argparser
|
96
94
|
ArgParser Spec home page: https://github.com/sinm/argparser\n")
|
97
95
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: argparser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sinm
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '4.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.30'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.30'
|
55
69
|
description: "== Yet another ruby command line argument parser library"
|
56
70
|
email: sinm.sinm@gmail.com
|
57
71
|
executables: []
|
@@ -95,9 +109,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
109
|
version: '0'
|
96
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
111
|
requirements:
|
98
|
-
- - "
|
112
|
+
- - ">="
|
99
113
|
- !ruby/object:Gem::Version
|
100
|
-
version:
|
114
|
+
version: '0'
|
101
115
|
requirements: []
|
102
116
|
rubyforge_project:
|
103
117
|
rubygems_version: 2.2.2
|