oyster 0.9.3 → 0.9.4

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.
@@ -1,3 +1,8 @@
1
+ === 0.9.4 / 2010-06-08
2
+
3
+ * Make Dan happy and support '=' as an argument separator.
4
+
5
+
1
6
  === 0.9.3 / 2009-09-23
2
7
 
3
8
  * Specification#parse() responds to nil input with an empty options hash.
data/README.txt CHANGED
@@ -197,7 +197,7 @@ otherwise you'll get a name collision in the output.
197
197
 
198
198
  (The MIT License)
199
199
 
200
- Copyright (c) 2008 James Coglan
200
+ Copyright (c) 2008-2010 James Coglan
201
201
 
202
202
  Permission is hereby granted, free of charge, to any person obtaining
203
203
  a copy of this software and associated documentation files (the
@@ -1,14 +1,15 @@
1
1
  module Oyster
2
- VERSION = '0.9.3'
2
+ VERSION = '0.9.4'
3
3
 
4
- LONG_NAME = /^--([a-z\[][a-z0-9\]\-]+)$/i
5
- SHORT_NAME = /^-([a-z0-9]+)$/i
4
+ LONG_NAME = /^--([a-z\[][a-z0-9\]\-]+)$/i
5
+ LONG_NAME_EQ = /^--([a-z\[][a-z0-9\]\-]+=.*)$/i
6
+ SHORT_NAME = /^-([a-z0-9]+)$/i
6
7
 
7
- HELP_INDENT = 7
8
- HELP_WIDTH = 80
8
+ HELP_INDENT = 7
9
+ HELP_WIDTH = 80
9
10
 
10
- STOP_FLAG = '--'
11
- NEGATOR = /^no-/
11
+ STOP_FLAG = '--'
12
+ NEGATOR = /^no-/
12
13
 
13
14
  WINDOWS = RUBY_PLATFORM.split('-').any? { |part| part =~ /mswin\d*/i }
14
15
 
@@ -58,10 +58,18 @@ module Oyster
58
58
 
59
59
  option = command(token)
60
60
 
61
- long, short = token.scan(LONG_NAME), token.scan(SHORT_NAME)
62
- long, short = [long, short].map { |s| s.flatten.first }
61
+ long, long_eq, short = *[LONG_NAME, LONG_NAME_EQ, SHORT_NAME].map { |re| token.scan(re).flatten.first }
63
62
 
64
- input = short.scan(/./).map { |s| "-#{s}" } + input and next if short and short.size > 1
63
+ if short and short.size > 1
64
+ input = short.scan(/./).map { |s| "-#{s}" } + input
65
+ next
66
+ end
67
+
68
+ if long_eq
69
+ parts = long_eq.split('=')
70
+ long = parts.shift
71
+ input.unshift(parts * '=')
72
+ end
65
73
 
66
74
  negative = !!(long && long =~ NEGATOR)
67
75
  long.sub!(NEGATOR, '') if negative
@@ -124,6 +124,11 @@ class OysterTest < Test::Unit::TestCase
124
124
  assert_equal 'help.txt, cmd.rb', opts[:files].join(', ')
125
125
  end
126
126
 
127
+ def test_equals_separator
128
+ opts = @spec.parse %w(--user=danlucraft)
129
+ assert_equal 'danlucraft', opts[:user]
130
+ end
131
+
127
132
  def test_strings
128
133
  opts = @spec.parse %w(-v --user jcoglan something)
129
134
  assert_equal 'jcoglan', opts[:user]
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oyster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ hash: 51
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 4
10
+ version: 0.9.4
5
11
  platform: ruby
6
12
  authors:
7
13
  - James Coglan
@@ -9,19 +15,41 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-09-23 00:00:00 +01:00
18
+ date: 2010-06-08 00:00:00 +01:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
- name: hoe
22
+ name: rubyforge
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 7
30
+ segments:
31
+ - 2
32
+ - 0
33
+ - 4
34
+ version: 2.0.4
17
35
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: hoe
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
20
42
  requirements:
21
43
  - - ">="
22
44
  - !ruby/object:Gem::Version
23
- version: 2.3.3
24
- version:
45
+ hash: 23
46
+ segments:
47
+ - 2
48
+ - 6
49
+ - 0
50
+ version: 2.6.0
51
+ type: :development
52
+ version_requirements: *id002
25
53
  description: ""
26
54
  email:
27
55
  - jcoglan@googlemail.com
@@ -62,21 +90,27 @@ rdoc_options:
62
90
  require_paths:
63
91
  - lib
64
92
  required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
65
94
  requirements:
66
95
  - - ">="
67
96
  - !ruby/object:Gem::Version
97
+ hash: 3
98
+ segments:
99
+ - 0
68
100
  version: "0"
69
- version:
70
101
  required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
71
103
  requirements:
72
104
  - - ">="
73
105
  - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
74
109
  version: "0"
75
- version:
76
110
  requirements: []
77
111
 
78
112
  rubyforge_project: oyster
79
- rubygems_version: 1.3.3
113
+ rubygems_version: 1.3.7
80
114
  signing_key:
81
115
  specification_version: 3
82
116
  summary: ""