gli 2.19.2 → 2.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +28 -0
- data/.gitignore +1 -3
- data/Gemfile +0 -6
- data/README.rdoc +2 -12
- data/Rakefile +15 -37
- data/bin/ci +29 -0
- data/bin/gli +25 -64
- data/bin/rake +29 -0
- data/bin/setup +5 -0
- data/exe/gli +68 -0
- data/gli.gemspec +19 -21
- data/gli.rdoc +2 -2
- data/lib/gli/commands/help_modules/command_help_format.rb +1 -1
- data/lib/gli/commands/help_modules/global_help_format.rb +1 -1
- data/lib/gli/commands/scaffold.rb +9 -93
- data/lib/gli/options.rb +2 -2
- data/lib/gli/version.rb +1 -1
- data/object-model.dot +29 -0
- data/object-model.png +0 -0
- data/test/apps/todo/Gemfile +1 -1
- data/test/apps/todo/bin/todo +1 -1
- data/test/integration/gli_cli_test.rb +69 -0
- data/test/integration/gli_powered_app_test.rb +52 -0
- data/test/integration/scaffold_test.rb +30 -0
- data/test/integration/test_helper.rb +52 -0
- data/test/{tc_command_finder.rb → unit/command_finder_test.rb} +6 -6
- data/test/{tc_command.rb → unit/command_test.rb} +4 -4
- data/test/unit/compound_command_test.rb +17 -0
- data/test/{tc_doc.rb → unit/doc_test.rb} +38 -51
- data/test/{tc_flag.rb → unit/flag_test.rb} +19 -25
- data/test/{tc_gli.rb → unit/gli_test.rb} +28 -47
- data/test/{tc_help.rb → unit/help_test.rb} +48 -107
- data/test/{init_simplecov.rb → unit/init_simplecov.rb} +0 -0
- data/test/{tc_options.rb → unit/options_test.rb} +4 -4
- data/test/unit/subcommand_parsing_test.rb +263 -0
- data/test/unit/subcommands_test.rb +245 -0
- data/test/{fake_std_out.rb → unit/support/fake_std_out.rb} +0 -0
- data/test/{config.yaml → unit/support/gli_test_config.yml} +0 -0
- data/test/unit/switch_test.rb +49 -0
- data/test/{tc_terminal.rb → unit/terminal_test.rb} +4 -3
- data/test/unit/test_helper.rb +13 -0
- data/test/unit/verbatim_wrapper_test.rb +24 -0
- metadata +57 -124
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -11
- data/ObjectModel.graffle +0 -1191
- data/bin/report_on_rake_results +0 -10
- data/bin/test_all_rubies.sh +0 -6
- data/features/gli_executable.feature +0 -90
- data/features/gli_init.feature +0 -236
- data/features/step_definitions/gli_executable_steps.rb +0 -18
- data/features/step_definitions/gli_init_steps.rb +0 -11
- data/features/step_definitions/todo_steps.rb +0 -100
- data/features/support/env.rb +0 -54
- data/features/support/hooks.rb +0 -5
- data/features/todo.feature +0 -579
- data/features/todo_legacy.feature +0 -130
- data/test/option_test_helper.rb +0 -13
- data/test/tc_compound_command.rb +0 -22
- data/test/tc_subcommand_parsing.rb +0 -280
- data/test/tc_subcommands.rb +0 -259
- data/test/tc_switch.rb +0 -55
- data/test/tc_verbatim_wrapper.rb +0 -36
- data/test/test_helper.rb +0 -21
data/bin/report_on_rake_results
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'yaml'
|
3
|
-
require 'rainbow'
|
4
|
-
|
5
|
-
results = YAML::load(STDIN)
|
6
|
-
success = results["successes"] || []
|
7
|
-
errors = results["errors"] || []
|
8
|
-
success.each { |ruby| puts ruby.color(:green) }
|
9
|
-
errors.each { |ruby| puts ruby.color(:red) }
|
10
|
-
exit -1 unless errors.empty?
|
data/bin/test_all_rubies.sh
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
echo tests
|
2
|
-
rvm 1.9.2@gli-dev,1.9.3@gli-dev,1.8.7@gli-dev,jruby@gli-dev,rbx@gli-dev,ree@gli-dev --yaml rake test | bin/report_on_rake_results
|
3
|
-
rake clobber > /dev/null 2>&1
|
4
|
-
echo features
|
5
|
-
rvm 1.9.2@gli-dev,1.9.3@gli-dev,1.8.7@gli-dev,jruby@gli-dev,rbx@gli-dev,ree@gli-dev --yaml rake features | bin/report_on_rake_results
|
6
|
-
rake clobber > /dev/null 2>&1
|
@@ -1,90 +0,0 @@
|
|
1
|
-
Feature: The GLI executable works as intended
|
2
|
-
As a developer who wants to make a GLI-powered command-line app
|
3
|
-
When I use the app provided by GLI
|
4
|
-
I get a reasonably working application
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given I have GLI installed
|
8
|
-
And my terminal size is "80x24"
|
9
|
-
|
10
|
-
Scenario Outline: Getting Help for GLI
|
11
|
-
When I run `gli <command>`
|
12
|
-
Then the exit status should be 0
|
13
|
-
And the output should contain:
|
14
|
-
"""
|
15
|
-
NAME
|
16
|
-
gli - create scaffolding for a GLI-powered application
|
17
|
-
|
18
|
-
SYNOPSIS
|
19
|
-
gli [global options] command [command options] [arguments...]
|
20
|
-
|
21
|
-
VERSION
|
22
|
-
"""
|
23
|
-
And the output should contain:
|
24
|
-
"""
|
25
|
-
GLOBAL OPTIONS
|
26
|
-
--help - Show this message
|
27
|
-
-n - Dry run; dont change the disk
|
28
|
-
-r, --root=arg - Root dir of project (default: .)
|
29
|
-
-v - Be verbose
|
30
|
-
--version - Display the program version
|
31
|
-
|
32
|
-
COMMANDS
|
33
|
-
help - Shows a list of commands or help for one command
|
34
|
-
init, scaffold - Create a new GLI-based project
|
35
|
-
"""
|
36
|
-
|
37
|
-
Examples:
|
38
|
-
|command|
|
39
|
-
| |
|
40
|
-
|help |
|
41
|
-
|
42
|
-
|
43
|
-
Scenario Outline: Getting help on scaffolding
|
44
|
-
When I run `gli help <command>`
|
45
|
-
Then the exit status should be 0
|
46
|
-
And the output should contain:
|
47
|
-
"""
|
48
|
-
NAME
|
49
|
-
init - Create a new GLI-based project
|
50
|
-
|
51
|
-
SYNOPSIS
|
52
|
-
gli [global options] init [command options] project_name [command_name]...
|
53
|
-
|
54
|
-
DESCRIPTION
|
55
|
-
This will create a scaffold command line project that uses GLI for command
|
56
|
-
line processing. Specifically, this will create an executable ready to go,
|
57
|
-
as well as a lib and test directory, all inside the directory named for your
|
58
|
-
project
|
59
|
-
|
60
|
-
COMMAND OPTIONS
|
61
|
-
-e, --[no-]ext - Create an ext dir
|
62
|
-
--[no-]force - Overwrite/ignore existing files and directories
|
63
|
-
--notest - Do not create a test or features dir
|
64
|
-
"""
|
65
|
-
|
66
|
-
Examples:
|
67
|
-
|command |
|
68
|
-
|init |
|
69
|
-
|scaffold |
|
70
|
-
|
71
|
-
|
72
|
-
Scenario: GLI correctly identifies non-existent command
|
73
|
-
When I run `gli foobar`
|
74
|
-
Then the exit status should not be 0
|
75
|
-
And the stderr should contain "error: Unknown command 'foobar'"
|
76
|
-
|
77
|
-
Scenario: GLI correctly identifies non-existent global flag
|
78
|
-
When I run `gli -q help`
|
79
|
-
Then the exit status should not be 0
|
80
|
-
And the stderr should contain "error: Unknown option -q"
|
81
|
-
|
82
|
-
Scenario: GLI correctly identifies non-existent command flag
|
83
|
-
When I run `gli init -q`
|
84
|
-
Then the exit status should not be 0
|
85
|
-
And the stderr should contain "error: Unknown option -q"
|
86
|
-
|
87
|
-
Scenario: The _doc command doesn't blow up
|
88
|
-
Given the file "gli.rdoc" doesn't exist
|
89
|
-
When I run `gli _doc`
|
90
|
-
Then a file named "gli.rdoc" should exist
|
data/features/gli_init.feature
DELETED
@@ -1,236 +0,0 @@
|
|
1
|
-
Feature: The scaffold GLI generates works
|
2
|
-
As a developer who wants to make a GLI-powered command-line app
|
3
|
-
When I generate a GLI-powered app
|
4
|
-
Things work out of the box
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given I have GLI installed
|
8
|
-
And GLI's libs are in my path
|
9
|
-
And my terminal size is "80x24"
|
10
|
-
|
11
|
-
@slow-command
|
12
|
-
Scenario: Scaffold generates and things look good
|
13
|
-
When I run `gli init --rvmrc todo add complete list`
|
14
|
-
Then the exit status should be 0
|
15
|
-
And the output should contain exactly:
|
16
|
-
"""
|
17
|
-
Creating dir ./todo/lib...
|
18
|
-
Creating dir ./todo/bin...
|
19
|
-
Creating dir ./todo/test...
|
20
|
-
Created ./todo/bin/todo
|
21
|
-
Created ./todo/README.rdoc
|
22
|
-
Created ./todo/todo.rdoc
|
23
|
-
Created ./todo/todo.gemspec
|
24
|
-
Created ./todo/test/default_test.rb
|
25
|
-
Created ./todo/test/test_helper.rb
|
26
|
-
Created ./todo/Rakefile
|
27
|
-
Created ./todo/Gemfile
|
28
|
-
Created ./todo/features
|
29
|
-
Created ./todo/lib/todo/version.rb
|
30
|
-
Created ./todo/lib/todo.rb
|
31
|
-
Created ./todo/.rvmrc
|
32
|
-
|
33
|
-
"""
|
34
|
-
And the following directories should exist:
|
35
|
-
|todo |
|
36
|
-
|todo/bin |
|
37
|
-
|todo/test |
|
38
|
-
|todo/lib |
|
39
|
-
|todo/.git |
|
40
|
-
And the following files should exist:
|
41
|
-
|todo/bin/todo |
|
42
|
-
|todo/README.rdoc |
|
43
|
-
|todo/todo.rdoc |
|
44
|
-
|todo/todo.gemspec |
|
45
|
-
|todo/test/default_test.rb |
|
46
|
-
|todo/test/test_helper.rb |
|
47
|
-
|todo/Rakefile |
|
48
|
-
|todo/Gemfile |
|
49
|
-
|todo/lib/todo/version.rb |
|
50
|
-
|todo/lib/todo.rb |
|
51
|
-
|todo/.rvmrc |
|
52
|
-
And the file "todo/README.rdoc" should contain ":include:todo.rdoc"
|
53
|
-
And the file "todo/todo.rdoc" should contain "todo _doc"
|
54
|
-
When I cd to "todo"
|
55
|
-
And I make sure todo's lib dir is in my lib path
|
56
|
-
And I run `bin/todo`
|
57
|
-
Then the output should contain:
|
58
|
-
"""
|
59
|
-
NAME
|
60
|
-
todo - Describe your application here
|
61
|
-
|
62
|
-
SYNOPSIS
|
63
|
-
todo [global options] command [command options] [arguments...]
|
64
|
-
|
65
|
-
VERSION
|
66
|
-
0.0.1
|
67
|
-
|
68
|
-
GLOBAL OPTIONS
|
69
|
-
-f, --flagname=The name of the argument - Describe some flag here (default:
|
70
|
-
the default)
|
71
|
-
--help - Show this message
|
72
|
-
-s, --[no-]switch - Describe some switch here
|
73
|
-
--version - Display the program version
|
74
|
-
|
75
|
-
COMMANDS
|
76
|
-
add - Describe add here
|
77
|
-
complete - Describe complete here
|
78
|
-
help - Shows a list of commands or help for one command
|
79
|
-
list - Describe list here
|
80
|
-
|
81
|
-
"""
|
82
|
-
And I run `bin/todo --help`
|
83
|
-
Then the output should contain:
|
84
|
-
"""
|
85
|
-
NAME
|
86
|
-
todo - Describe your application here
|
87
|
-
|
88
|
-
SYNOPSIS
|
89
|
-
todo [global options] command [command options] [arguments...]
|
90
|
-
|
91
|
-
VERSION
|
92
|
-
0.0.1
|
93
|
-
|
94
|
-
GLOBAL OPTIONS
|
95
|
-
-f, --flagname=The name of the argument - Describe some flag here (default:
|
96
|
-
the default)
|
97
|
-
--help - Show this message
|
98
|
-
-s, --[no-]switch - Describe some switch here
|
99
|
-
--version - Display the program version
|
100
|
-
|
101
|
-
COMMANDS
|
102
|
-
add - Describe add here
|
103
|
-
complete - Describe complete here
|
104
|
-
help - Shows a list of commands or help for one command
|
105
|
-
list - Describe list here
|
106
|
-
|
107
|
-
"""
|
108
|
-
When I run `bin/todo help add`
|
109
|
-
Then the output should contain:
|
110
|
-
"""
|
111
|
-
NAME
|
112
|
-
add - Describe add here
|
113
|
-
"""
|
114
|
-
And the output should contain:
|
115
|
-
"""
|
116
|
-
SYNOPSIS
|
117
|
-
todo [global options] add [command options] Describe arguments to add here
|
118
|
-
"""
|
119
|
-
And the output should contain:
|
120
|
-
"""
|
121
|
-
COMMAND OPTIONS
|
122
|
-
-f arg - Describe a flag to add (default: default)
|
123
|
-
-s - Describe a switch to add
|
124
|
-
"""
|
125
|
-
When I run `rake test`
|
126
|
-
Then the output should contain:
|
127
|
-
"""
|
128
|
-
.
|
129
|
-
"""
|
130
|
-
And the output should contain:
|
131
|
-
"""
|
132
|
-
|
133
|
-
1 tests, 1 assertions, 0 failures, 0 errors
|
134
|
-
"""
|
135
|
-
Given todo's libs are no longer in my load path
|
136
|
-
When I run `rake features`
|
137
|
-
Then the output should contain:
|
138
|
-
"""
|
139
|
-
1 scenario (1 passed)
|
140
|
-
"""
|
141
|
-
And the output should contain:
|
142
|
-
"""
|
143
|
-
2 steps (2 passed)
|
144
|
-
"""
|
145
|
-
|
146
|
-
Scenario Outline: Scaffold generates and respects flags to create ext dir and avoid test dir
|
147
|
-
When I run `<command>`
|
148
|
-
Then the exit status should be 0
|
149
|
-
And the output should contain exactly:
|
150
|
-
"""
|
151
|
-
Creating dir ./todo/lib...
|
152
|
-
Creating dir ./todo/bin...
|
153
|
-
Creating dir ./todo/ext...
|
154
|
-
Created ./todo/bin/todo
|
155
|
-
Created ./todo/README.rdoc
|
156
|
-
Created ./todo/todo.rdoc
|
157
|
-
Created ./todo/todo.gemspec
|
158
|
-
Created ./todo/Rakefile
|
159
|
-
Created ./todo/Gemfile
|
160
|
-
Created ./todo/lib/todo/version.rb
|
161
|
-
Created ./todo/lib/todo.rb
|
162
|
-
|
163
|
-
"""
|
164
|
-
And the following directories should exist:
|
165
|
-
|todo |
|
166
|
-
|todo/bin |
|
167
|
-
|todo/ext |
|
168
|
-
|todo/lib |
|
169
|
-
And the following directories should not exist:
|
170
|
-
|todo/test|
|
171
|
-
And the following files should exist:
|
172
|
-
|todo/bin/todo |
|
173
|
-
|todo/README.rdoc |
|
174
|
-
|todo/todo.rdoc |
|
175
|
-
|todo/todo.gemspec |
|
176
|
-
|todo/Rakefile |
|
177
|
-
|todo/Gemfile |
|
178
|
-
|todo/lib/todo/version.rb |
|
179
|
-
|todo/lib/todo.rb |
|
180
|
-
|
181
|
-
Examples:
|
182
|
-
| command |
|
183
|
-
| gli init -e --notest todo add complete list |
|
184
|
-
| gli init todo add complete list -e --notest |
|
185
|
-
|
186
|
-
Scenario: Running commands the normal way
|
187
|
-
Given I successfully run `gli init todo add complete compute list`
|
188
|
-
And I cd to "todo"
|
189
|
-
And I make sure todo's lib dir is in my lib path
|
190
|
-
When I successfully run `bin/todo add`
|
191
|
-
Then the output should contain "add command ran"
|
192
|
-
When I successfully run `bin/todo complete`
|
193
|
-
Then the output should contain "complete command ran"
|
194
|
-
When I run `bin/todo foobar`
|
195
|
-
Then the stderr should contain "error: Unknown command 'foobar'"
|
196
|
-
And the exit status should not be 0
|
197
|
-
|
198
|
-
Scenario: Running commands using short form
|
199
|
-
Given I successfully run `gli init todo add complete compute list`
|
200
|
-
And I cd to "todo"
|
201
|
-
And I make sure todo's lib dir is in my lib path
|
202
|
-
When I successfully run `bin/todo a`
|
203
|
-
Then the output should contain "add command ran"
|
204
|
-
When I successfully run `bin/todo l`
|
205
|
-
Then the output should contain "list command ran"
|
206
|
-
When I successfully run `bin/todo compl`
|
207
|
-
Then the output should contain "complete command ran"
|
208
|
-
|
209
|
-
Scenario: Ambiguous commands give helpful output
|
210
|
-
Given I successfully run `gli init todo add complete compute list`
|
211
|
-
And I cd to "todo"
|
212
|
-
And I make sure todo's lib dir is in my lib path
|
213
|
-
When I run `bin/todo comp`
|
214
|
-
Then the stderr should contain "Ambiguous command 'comp'. It matches complete,compute"
|
215
|
-
And the exit status should not be 0
|
216
|
-
|
217
|
-
Scenario: Running generated command without bundler gives a helpful error message
|
218
|
-
Given I successfully run `gli init todo add complete compute list`
|
219
|
-
And I cd to "todo"
|
220
|
-
When I run `bin/todo comp`
|
221
|
-
Then the exit status should not be 0
|
222
|
-
Then the stderr should contain "In development, you need to use `bundle exec bin/todo` to run your app"
|
223
|
-
And the stderr should contain "At install-time, RubyGems will make sure lib, etc. are in the load path"
|
224
|
-
And the stderr should contain "Feel free to remove this message from bin/todo now"
|
225
|
-
|
226
|
-
Scenario: Running commands with a dash in the name
|
227
|
-
Given I successfully run `gli init todo-app add complete compute list`
|
228
|
-
And I cd to "todo-app"
|
229
|
-
And I make sure todo's lib dir is in my lib path
|
230
|
-
When I successfully run `bin/todo-app add`
|
231
|
-
Then the output should contain "add command ran"
|
232
|
-
When I successfully run `bin/todo-app complete`
|
233
|
-
Then the output should contain "complete command ran"
|
234
|
-
When I run `bin/todo-app foobar`
|
235
|
-
Then the stderr should contain "error: Unknown command 'foobar'"
|
236
|
-
And the exit status should not be 0
|
@@ -1,18 +0,0 @@
|
|
1
|
-
Given /^I have GLI installed$/ do
|
2
|
-
add_to_lib_path(GLI_LIB_PATH)
|
3
|
-
end
|
4
|
-
|
5
|
-
Given /^my terminal size is "([^"]*)"$/ do |terminal_size|
|
6
|
-
if terminal_size =~/^(\d+)x(\d+)$/
|
7
|
-
ENV['COLUMNS'] = $1
|
8
|
-
ENV['LINES'] = $2
|
9
|
-
else
|
10
|
-
raise "Terminal size should be COLxLines, e.g. 80x24"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
Given /^the file "(.*?)" doesn't exist$/ do |filename|
|
16
|
-
FileUtils.rm filename if File.exist?(filename)
|
17
|
-
end
|
18
|
-
|
@@ -1,11 +0,0 @@
|
|
1
|
-
Given /^GLI's libs are in my path$/ do
|
2
|
-
ENV['RUBYLIB'] = GLI_LIB_PATH
|
3
|
-
end
|
4
|
-
|
5
|
-
Given /^I make sure todo's lib dir is in my lib path$/ do
|
6
|
-
add_to_lib_path("./lib")
|
7
|
-
end
|
8
|
-
|
9
|
-
Given /^todo's libs are no longer in my load path$/ do
|
10
|
-
remove_from_lib_path("./lib")
|
11
|
-
end
|
@@ -1,100 +0,0 @@
|
|
1
|
-
Given /^todo_legacy's bin directory is in my path/ do
|
2
|
-
add_to_path(File.expand_path(File.join(File.dirname(__FILE__),'..','..','test','apps','todo_legacy','bin')))
|
3
|
-
end
|
4
|
-
|
5
|
-
Given /^todo's bin directory is in my path/ do
|
6
|
-
add_to_path(File.expand_path(File.join(File.dirname(__FILE__),'..','..','test','apps','todo','bin')))
|
7
|
-
end
|
8
|
-
|
9
|
-
Given /^the todo app is coded to avoid sorted help commands$/ do
|
10
|
-
ENV['TODO_SORT_HELP'] = 'manually'
|
11
|
-
end
|
12
|
-
|
13
|
-
Given /^the todo app is coded to avoid wrapping text$/ do
|
14
|
-
ENV['TODO_WRAP_HELP_TEXT'] = 'one_line'
|
15
|
-
end
|
16
|
-
|
17
|
-
Given /^the todo app is coded to wrap text only for tty$/ do
|
18
|
-
ENV['TODO_WRAP_HELP_TEXT'] = 'tty_only'
|
19
|
-
end
|
20
|
-
|
21
|
-
Given /^the todo app is coded to hide commands without description$/ do
|
22
|
-
ENV['HIDE_COMMANDS_WITHOUT_DESC'] = 'true'
|
23
|
-
end
|
24
|
-
|
25
|
-
Given /^a clean home directory$/ do
|
26
|
-
FileUtils.rm_rf File.join(ENV['HOME'],'gli_test_todo.rc')
|
27
|
-
end
|
28
|
-
|
29
|
-
Then /^the config file should contain a section for each command and subcommand$/ do
|
30
|
-
config = File.open(File.join(ENV['HOME'],'gli_test_todo.rc')) do |file|
|
31
|
-
YAML::load(file)
|
32
|
-
end
|
33
|
-
expect(config.keys).to include(:flag)
|
34
|
-
expect(config[:flag]).to eq('foo')
|
35
|
-
config[:flag].tap do |flag|
|
36
|
-
if flag.respond_to?(:encoding)
|
37
|
-
expect(flag.encoding.name).to eq('UTF-8')
|
38
|
-
end
|
39
|
-
end
|
40
|
-
expect(config.keys).to include(:switch)
|
41
|
-
expect(config[:switch]).to eq(true)
|
42
|
-
expect(config.keys).to include(:otherswitch)
|
43
|
-
expect(config[:otherswitch]).to eq(false)
|
44
|
-
expect(config.keys).to include('commands')
|
45
|
-
%w(chained chained2 create first list ls second).map(&:to_sym).each do |command_name|
|
46
|
-
expect(config['commands'].keys).to include(command_name)
|
47
|
-
end
|
48
|
-
expect(config['commands'][:create].keys).to include('commands')
|
49
|
-
expect(config['commands'][:create]['commands']).to include(:tasks)
|
50
|
-
expect(config['commands'][:create]['commands']).to include(:contexts)
|
51
|
-
|
52
|
-
expect(config['commands'][:list].keys).to include('commands')
|
53
|
-
expect(config['commands'][:list]['commands']).to include(:tasks)
|
54
|
-
expect(config['commands'][:list]['commands']).to include(:contexts)
|
55
|
-
end
|
56
|
-
|
57
|
-
Given /^a config file that specifies defaults for some commands with subcommands$/ do
|
58
|
-
@config = {
|
59
|
-
'commands' => {
|
60
|
-
:list => {
|
61
|
-
'commands' => {
|
62
|
-
:tasks => {
|
63
|
-
:flag => 'foobar',
|
64
|
-
},
|
65
|
-
:contexts => {
|
66
|
-
:otherflag => 'crud',
|
67
|
-
},
|
68
|
-
}
|
69
|
-
}
|
70
|
-
}
|
71
|
-
}
|
72
|
-
File.open(File.join(ENV['HOME'],'gli_test_todo.rc'),'w') do |file|
|
73
|
-
file.puts @config.to_yaml
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
Then /^I should see the defaults for '(.*)' from the config file in the help$/ do |command_path|
|
78
|
-
if command_path == 'list tasks'
|
79
|
-
step %{the output should match /--flag.*default: foobar/}
|
80
|
-
expect(unescape(all_output)).not_to match(/#{unescape("--otherflag.*default: crud")}/m)
|
81
|
-
elsif command_path == 'list contexts'
|
82
|
-
step %{the output should match /--otherflag.*default: crud/}
|
83
|
-
expect(unescape(all_output)).not_to match(/#{unescape("--flag.*default: foobar")}/m)
|
84
|
-
else
|
85
|
-
raise "Don't know how to test for command path #{command_path}"
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
|
90
|
-
Given /^the todo app is coded to use verbatim formatting$/ do
|
91
|
-
ENV['TODO_WRAP_HELP_TEXT'] = 'verbatim'
|
92
|
-
end
|
93
|
-
|
94
|
-
Given(/^my terminal is (\d+) characters wide$/) do |terminal_width|
|
95
|
-
ENV['COLUMNS'] = terminal_width.to_s
|
96
|
-
end
|
97
|
-
|
98
|
-
Given(/^my app is configured for "(.*?)" synopses$/) do |synopsis|
|
99
|
-
ENV['SYNOPSES'] = synopsis
|
100
|
-
end
|