optparshie 1.0.4 → 1.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.
data/Gemfile CHANGED
@@ -2,6 +2,7 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
+ gem "hashie", ">= 1.2.0"
5
6
 
6
7
  # Add dependencies to develop your gem here.
7
8
  # Include everything needed to run rake, tests, features, etc.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.1.0
data/example/example1.rb CHANGED
@@ -2,15 +2,19 @@
2
2
  #-*- coding: utf-8 -*-
3
3
  require("../lib/optparshie");
4
4
 
5
- argv = "--test --wa -a 2 --on".split(/\s+/);
5
+ argv = "--exp --wa -a 2 --on ADDITION".split(/\s+/);
6
6
  puts("test argv: #{argv}");
7
7
 
8
8
  opt = OptionParshie.new();
9
9
  opt.on("-a","--a-value=VAL");
10
- opt.on("--test");
10
+ opt.on("--exp");
11
11
  opt.on("-w","--waros");
12
12
  opt.on("-o","--on");
13
- opt.parse(argv);
13
+
14
+ # parse returns mash
15
+ puts("opt.parse => #{opt.parse(argv)}");
16
+ # parse! returns [argv, mash]
17
+ puts("opt.parse! => #{opt.parse!(argv)}");
14
18
 
15
19
  # access with short option
16
20
  puts("opt.a => #{opt.a}");
@@ -19,10 +23,10 @@ puts("opt.o => #{opt.o}");
19
23
 
20
24
  # access with long option
21
25
  puts("opt.a_value => #{opt.a_value}");
22
- puts("opt.test => #{opt.test}");
26
+ puts("opt.exp => #{opt.exp}");
23
27
  puts("opt.waros => #{opt.waros}");
24
- # Oops! This is already defined method....
28
+ # Oops! It's already defined method....
25
29
  # opt.on => Usage: example1 (blah blah blah)
26
30
 
27
31
  # instead of you can access through hash
28
- puts("opt.hash['on'] => #{opt.hash['on']}");
32
+ puts("opt.mash.on => #{opt.mash.on}");
data/lib/optparshie.rb CHANGED
@@ -2,11 +2,12 @@
2
2
  #-*- coding: utf-8 -*-
3
3
  require("rubygems");
4
4
  require("optparse");
5
+ require("hashie");
5
6
 
6
7
  class OptionParshie < OptionParser
7
8
  def initialize()
8
9
  super;
9
- @hash = {};
10
+ @mash = Hashie::Mash.new();
10
11
  end
11
12
 
12
13
  def hash_key_sanitize(switch)
@@ -14,24 +15,28 @@ class OptionParshie < OptionParser
14
15
  end
15
16
 
16
17
  def hash_sw_add(sw,val)
17
- (sw.short+sw.long).each { |switch| @hash[hash_key_sanitize(switch)] = val; }
18
+ (sw.short+sw.long).each { |switch| @mash.send(hash_key_sanitize(switch)+"=",val); }
18
19
  end
19
20
 
20
21
  def parse(*argv)
21
- @hash = {};
22
+ @mash.clear();
22
23
  top.list.each { |sw| hash_sw_add(sw,nil); }
23
- super;
24
+ argv = super;
25
+
26
+ return @mash;
24
27
  end
25
28
 
26
29
  def parse!(*argv)
27
- @hash = {};
30
+ @mash.clear();
28
31
  top.list.each { |sw| hash_sw_add(sw,nil); }
29
- super;
32
+ argv = super;
33
+
34
+ return [ argv,@mash ];
30
35
  end
31
36
 
32
37
  # ----------------------------------------------------------------------------
33
38
  # Borrowed from optparse.rb
34
- # (author of optparse.rb is Nobu Nakada-san, thank you!)
39
+ # (author of optparse.rb is Nobu Nakada-san, thanks!)
35
40
  # ----------------------------------------------------------------------------
36
41
  def parse_in_order(argv = default_argv, setter = nil, &nonopt) # :nodoc:
37
42
  opt, arg, val, rest = nil
@@ -119,14 +124,9 @@ class OptionParshie < OptionParser
119
124
  end
120
125
 
121
126
  def method_missing(name,*args)
122
- name = name.to_s();
123
- if (@hash.key?(name))
124
- return @hash[name];
125
- else
126
- super;
127
- end
127
+ return @mash.send(name);
128
128
  end
129
129
 
130
- attr_reader :hash;
130
+ attr_reader :mash;
131
131
  private :hash_key_sanitize, :hash_sw_add;
132
132
  end
data/optparshie.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "optparshie"
8
- s.version = "1.0.4"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["lpm11"]
12
- s.date = "2011-11-02"
12
+ s.date = "2011-11-17"
13
13
  s.description = "OptionParser with Hashie::Mash like accessibility."
14
14
  s.email = "lpm11r@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -40,17 +40,20 @@ Gem::Specification.new do |s|
40
40
  s.specification_version = 3
41
41
 
42
42
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<hashie>, [">= 1.2.0"])
43
44
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
44
45
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
45
46
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
46
47
  s.add_development_dependency(%q<rcov>, [">= 0"])
47
48
  else
49
+ s.add_dependency(%q<hashie>, [">= 1.2.0"])
48
50
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
49
51
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
50
52
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
51
53
  s.add_dependency(%q<rcov>, [">= 0"])
52
54
  end
53
55
  else
56
+ s.add_dependency(%q<hashie>, [">= 1.2.0"])
54
57
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
55
58
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
56
59
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: optparshie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-02 00:00:00.000000000 Z
12
+ date: 2011-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: hashie
16
+ requirement: &4219380 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *4219380
14
25
  - !ruby/object:Gem::Dependency
15
26
  name: rspec
16
- requirement: &11248460 !ruby/object:Gem::Requirement
27
+ requirement: &3800500 !ruby/object:Gem::Requirement
17
28
  none: false
18
29
  requirements:
19
30
  - - ~>
@@ -21,10 +32,10 @@ dependencies:
21
32
  version: 2.3.0
22
33
  type: :development
23
34
  prerelease: false
24
- version_requirements: *11248460
35
+ version_requirements: *3800500
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: bundler
27
- requirement: &11247980 !ruby/object:Gem::Requirement
38
+ requirement: &3797220 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ~>
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 1.0.0
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *11247980
46
+ version_requirements: *3797220
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: jeweler
38
- requirement: &11247500 !ruby/object:Gem::Requirement
49
+ requirement: &3915680 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 1.6.4
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *11247500
57
+ version_requirements: *3915680
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: rcov
49
- requirement: &11247020 !ruby/object:Gem::Requirement
60
+ requirement: &3865940 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,7 +65,7 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *11247020
68
+ version_requirements: *3865940
58
69
  description: OptionParser with Hashie::Mash like accessibility.
59
70
  email: lpm11r@gmail.com
60
71
  executables: []
@@ -90,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
101
  version: '0'
91
102
  segments:
92
103
  - 0
93
- hash: 1411168550154607844
104
+ hash: -1667869224629055928
94
105
  required_rubygems_version: !ruby/object:Gem::Requirement
95
106
  none: false
96
107
  requirements: