methadone 0.3.2 → 0.3.3
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/features/step_definitions/readme_steps.rb +9 -9
- data/lib/methadone/cucumber.rb +10 -10
- data/lib/methadone/main.rb +7 -4
- data/lib/methadone/version.rb +1 -1
- data/methadone.gemspec +2 -0
- data/test/test_main.rb +24 -12
- metadata +36 -14
@@ -1,26 +1,26 @@
|
|
1
1
|
Then /^a README should not be generated$/ do
|
2
|
-
|
2
|
+
step %(the file "tmp/newgem/README.rdoc" should not exist)
|
3
3
|
end
|
4
4
|
|
5
5
|
Then /^a README should be generated in RDoc$/ do
|
6
|
-
|
6
|
+
step %(a file named "tmp/newgem/README.rdoc" should exist)
|
7
7
|
end
|
8
8
|
|
9
9
|
Then /^the README should contain the project name$/ do
|
10
|
-
|
10
|
+
step %(the file "tmp/newgem/README.rdoc" should match /newgem/)
|
11
11
|
end
|
12
12
|
|
13
13
|
Then /^the README should contain my name$/ do
|
14
|
-
|
14
|
+
step %(the file "tmp/newgem/README.rdoc" should match /Author:: YOUR NAME \\\(YOUR EMAIL\\\)/)
|
15
15
|
end
|
16
16
|
|
17
17
|
Then /^the README should contain links to Github and RDoc.info$/ do
|
18
|
-
|
19
|
-
|
18
|
+
step %(the file "tmp/newgem/README.rdoc" should match /\\\* \\\{Source on Github\\\}\\\[LINK TO GITHUB\\\]/)
|
19
|
+
step %(the file "tmp/newgem/README.rdoc" should match /RDoc\\\[LINK TO RDOC.INFO\\\]/)
|
20
20
|
end
|
21
21
|
|
22
22
|
Then /^the README should contain empty sections for common elements of a README$/ do
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
step %(the file "tmp/newgem/README.rdoc" should match /^== Install/)
|
24
|
+
step %(the file "tmp/newgem/README.rdoc" should match /^== Examples/)
|
25
|
+
step %(the file "tmp/newgem/README.rdoc" should match /^== Contributing/)
|
26
26
|
end
|
data/lib/methadone/cucumber.rb
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
When /^I get help for "([^"]*)"$/ do |app_name|
|
2
2
|
@app_name = app_name
|
3
|
-
|
3
|
+
step %(I run `#{app_name} --help`)
|
4
4
|
end
|
5
5
|
|
6
6
|
Then /^the following options should be documented:$/ do |options|
|
7
7
|
options.raw.each do |option|
|
8
|
-
|
8
|
+
step %(the option "#{option[0]}" should be documented)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
Then /^the option "([^"]*)" should be documented$/ do |option|
|
13
|
-
|
13
|
+
step %(the output should match /^\\s*#{option}\\s+\\w\\w\\w+/)
|
14
14
|
end
|
15
15
|
|
16
16
|
Then /^the banner should be present$/ do
|
17
|
-
|
17
|
+
step %(the output should match /Usage: #{@app_name}/)
|
18
18
|
end
|
19
19
|
|
20
20
|
Then /^the banner should document that this app takes options$/ do
|
21
|
-
|
22
|
-
|
21
|
+
step %(the output should match /\[options\]/)
|
22
|
+
step %(the output should contain "Options")
|
23
23
|
end
|
24
24
|
|
25
25
|
Then /^the banner should document that this app's arguments are:$/ do |table|
|
@@ -27,16 +27,16 @@ Then /^the banner should document that this app's arguments are:$/ do |table|
|
|
27
27
|
option = row[0]
|
28
28
|
option = "[#{option}]" if row[1] == 'optional' || row[1] == 'which is optional'
|
29
29
|
}.join(' ')
|
30
|
-
|
30
|
+
step %(the output should contain "#{expected_arguments}")
|
31
31
|
end
|
32
32
|
|
33
33
|
Then /^the banner should document that this app takes no options$/ do
|
34
|
-
|
35
|
-
|
34
|
+
step %(the output should not contain "[options]")
|
35
|
+
step %(the output should not contain "Options")
|
36
36
|
end
|
37
37
|
|
38
38
|
Then /^the banner should document that this app takes no arguments$/ do
|
39
|
-
|
39
|
+
step %(the output should match /Usage: #{@app_name}\\s*$/)
|
40
40
|
end
|
41
41
|
|
42
42
|
Then /^there should be a one line summary of what the app does$/ do
|
data/lib/methadone/main.rb
CHANGED
@@ -249,7 +249,10 @@ module Methadone
|
|
249
249
|
else
|
250
250
|
opt_names = option_names(*args)
|
251
251
|
@option_parser.on(*args) do |value|
|
252
|
-
opt_names.each
|
252
|
+
opt_names.each do |name|
|
253
|
+
@options[name] = value
|
254
|
+
@options[name.to_s] = value
|
255
|
+
end
|
253
256
|
end
|
254
257
|
end
|
255
258
|
set_banner
|
@@ -316,11 +319,11 @@ module Methadone
|
|
316
319
|
|
317
320
|
def option_names(*opts_on_args,&block)
|
318
321
|
opts_on_args.map { |arg|
|
319
|
-
if arg =~ /^--\[no-\]([^-\s]*)/
|
322
|
+
if arg =~ /^--\[no-\]([^-\s][^\s]*)/
|
320
323
|
$1.to_sym
|
321
|
-
elsif arg =~ /^--([^-\s]*)/
|
324
|
+
elsif arg =~ /^--([^-\s][^\s]*)/
|
322
325
|
$1.to_sym
|
323
|
-
elsif arg =~ /^-([^-\s]*)/
|
326
|
+
elsif arg =~ /^-([^-\s][^\s]*)/
|
324
327
|
$1.to_sym
|
325
328
|
else
|
326
329
|
nil
|
data/lib/methadone/version.rb
CHANGED
data/methadone.gemspec
CHANGED
@@ -18,9 +18,11 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
|
+
s.add_dependency("bundler")
|
21
22
|
s.add_development_dependency("rspec-expectations", "~> 2.6")
|
22
23
|
s.add_development_dependency("rake")
|
23
24
|
s.add_development_dependency("rdoc","~> 3.9")
|
25
|
+
s.add_development_dependency("cucumber","~> 1.1.1")
|
24
26
|
s.add_development_dependency("aruba")
|
25
27
|
s.add_development_dependency("simplecov", "~> 0.5")
|
26
28
|
s.add_development_dependency("test_unit-given", ">= 0.1.1")
|
data/test/test_main.rb
CHANGED
@@ -191,33 +191,45 @@ class TestMain < BaseTest
|
|
191
191
|
@f = nil
|
192
192
|
@other = nil
|
193
193
|
@some_other = nil
|
194
|
+
@with_dashes = nil
|
194
195
|
main do
|
195
|
-
@switch
|
196
|
-
@flag
|
197
|
-
@f
|
198
|
-
@negatable
|
199
|
-
@other
|
200
|
-
@some_other
|
196
|
+
@switch = [options[:switch],options['switch']]
|
197
|
+
@flag = [options[:flag],options['flag']]
|
198
|
+
@f = [options[:f],options['f']]
|
199
|
+
@negatable = [options[:negatable],options['negatable']]
|
200
|
+
@other = [options[:other],options['other']]
|
201
|
+
@some_other = [options[:some_other],options['some_other']]
|
202
|
+
@with_dashes = [options[:'flag-with-dashes'],options['flag-with-dashes']]
|
201
203
|
end
|
202
204
|
|
203
205
|
on("--switch")
|
204
206
|
on("--[no-]negatable")
|
205
207
|
on("--flag FLAG","-f","Some documentation string")
|
208
|
+
on("--flag-with-dashes FOO")
|
206
209
|
on("--other") do
|
207
210
|
options[:some_other] = true
|
208
211
|
end
|
209
212
|
|
210
|
-
set_argv %w(--switch --flag value --negatable --other)
|
213
|
+
set_argv %w(--switch --flag value --negatable --other --flag-with-dashes=BAR)
|
211
214
|
}
|
212
215
|
|
213
216
|
When run_go_safely
|
214
217
|
|
215
218
|
Then {
|
216
|
-
@switch.should be true
|
217
|
-
@some_other.should be true
|
218
|
-
@other.should_not be true
|
219
|
-
@flag.should == 'value'
|
220
|
-
@f.should == 'value'
|
219
|
+
@switch[0].should be true
|
220
|
+
@some_other[0].should be true
|
221
|
+
@other[0].should_not be true
|
222
|
+
@flag[0].should == 'value'
|
223
|
+
@f[0].should == 'value'
|
224
|
+
@with_dashes[0].should == 'BAR'
|
225
|
+
|
226
|
+
@switch[1].should be true
|
227
|
+
@some_other[1].should be nil # ** this is set manually
|
228
|
+
@other[1].should_not be true
|
229
|
+
@flag[1].should == 'value'
|
230
|
+
@f[1].should == 'value'
|
231
|
+
@with_dashes[1].should == 'BAR'
|
232
|
+
|
221
233
|
opts.to_s.should match /Some documentation string/
|
222
234
|
}
|
223
235
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: methadone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
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-
|
12
|
+
date: 2011-11-04 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: &70155090787300 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70155090787300
|
14
25
|
- !ruby/object:Gem::Dependency
|
15
26
|
name: rspec-expectations
|
16
|
-
requirement: &
|
27
|
+
requirement: &70155090786800 !ruby/object:Gem::Requirement
|
17
28
|
none: false
|
18
29
|
requirements:
|
19
30
|
- - ~>
|
@@ -21,10 +32,10 @@ dependencies:
|
|
21
32
|
version: '2.6'
|
22
33
|
type: :development
|
23
34
|
prerelease: false
|
24
|
-
version_requirements: *
|
35
|
+
version_requirements: *70155090786800
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: rake
|
27
|
-
requirement: &
|
38
|
+
requirement: &70155090786380 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,10 +43,10 @@ dependencies:
|
|
32
43
|
version: '0'
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *70155090786380
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: rdoc
|
38
|
-
requirement: &
|
49
|
+
requirement: &70155090785840 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ~>
|
@@ -43,10 +54,21 @@ dependencies:
|
|
43
54
|
version: '3.9'
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *70155090785840
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: cucumber
|
60
|
+
requirement: &70155090785340 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 1.1.1
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70155090785340
|
47
69
|
- !ruby/object:Gem::Dependency
|
48
70
|
name: aruba
|
49
|
-
requirement: &
|
71
|
+
requirement: &70155090784960 !ruby/object:Gem::Requirement
|
50
72
|
none: false
|
51
73
|
requirements:
|
52
74
|
- - ! '>='
|
@@ -54,10 +76,10 @@ dependencies:
|
|
54
76
|
version: '0'
|
55
77
|
type: :development
|
56
78
|
prerelease: false
|
57
|
-
version_requirements: *
|
79
|
+
version_requirements: *70155090784960
|
58
80
|
- !ruby/object:Gem::Dependency
|
59
81
|
name: simplecov
|
60
|
-
requirement: &
|
82
|
+
requirement: &70155090784420 !ruby/object:Gem::Requirement
|
61
83
|
none: false
|
62
84
|
requirements:
|
63
85
|
- - ~>
|
@@ -65,10 +87,10 @@ dependencies:
|
|
65
87
|
version: '0.5'
|
66
88
|
type: :development
|
67
89
|
prerelease: false
|
68
|
-
version_requirements: *
|
90
|
+
version_requirements: *70155090784420
|
69
91
|
- !ruby/object:Gem::Dependency
|
70
92
|
name: test_unit-given
|
71
|
-
requirement: &
|
93
|
+
requirement: &70155090783920 !ruby/object:Gem::Requirement
|
72
94
|
none: false
|
73
95
|
requirements:
|
74
96
|
- - ! '>='
|
@@ -76,7 +98,7 @@ dependencies:
|
|
76
98
|
version: 0.1.1
|
77
99
|
type: :development
|
78
100
|
prerelease: false
|
79
|
-
version_requirements: *
|
101
|
+
version_requirements: *70155090783920
|
80
102
|
description: Methadone provides a lot of small but useful features for developing
|
81
103
|
a command-line app, including an opinionated bootstrapping process, some helpful
|
82
104
|
cucumber steps, and some classes to bridge logging and output into a simple, unified,
|