acquia_toolbelt 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. metadata +62 -130
  2. data/.gitignore +0 -4
  3. data/.ruby-version +0 -1
  4. data/.travis.yml +0 -7
  5. data/Gemfile +0 -3
  6. data/Gemfile.lock +0 -35
  7. data/LICENSE +0 -19
  8. data/README.md +0 -147
  9. data/Rakefile +0 -1
  10. data/acquia_toolbelt.gemspec +0 -32
  11. data/bin/acquia +0 -9
  12. data/lib/acquia_toolbelt.rb +0 -4
  13. data/lib/acquia_toolbelt/cli.rb +0 -103
  14. data/lib/acquia_toolbelt/cli/api.rb +0 -106
  15. data/lib/acquia_toolbelt/cli/auth.rb +0 -31
  16. data/lib/acquia_toolbelt/cli/database.rb +0 -208
  17. data/lib/acquia_toolbelt/cli/deploy.rb +0 -30
  18. data/lib/acquia_toolbelt/cli/domain.rb +0 -166
  19. data/lib/acquia_toolbelt/cli/environment.rb +0 -38
  20. data/lib/acquia_toolbelt/cli/file.rb +0 -23
  21. data/lib/acquia_toolbelt/cli/server.rb +0 -61
  22. data/lib/acquia_toolbelt/cli/site.rb +0 -28
  23. data/lib/acquia_toolbelt/cli/ssh.rb +0 -69
  24. data/lib/acquia_toolbelt/cli/svn.rb +0 -65
  25. data/lib/acquia_toolbelt/cli/task.rb +0 -71
  26. data/lib/acquia_toolbelt/cli/ui.rb +0 -29
  27. data/lib/acquia_toolbelt/error.rb +0 -4
  28. data/lib/acquia_toolbelt/thor.rb +0 -95
  29. data/lib/acquia_toolbelt/version.rb +0 -3
  30. data/lib/vendor/thor/CHANGELOG.md +0 -139
  31. data/lib/vendor/thor/Gemfile +0 -20
  32. data/lib/vendor/thor/LICENSE.md +0 -20
  33. data/lib/vendor/thor/README.md +0 -35
  34. data/lib/vendor/thor/lib/thor.rb +0 -474
  35. data/lib/vendor/thor/lib/thor/actions.rb +0 -318
  36. data/lib/vendor/thor/lib/thor/actions/create_file.rb +0 -105
  37. data/lib/vendor/thor/lib/thor/actions/create_link.rb +0 -60
  38. data/lib/vendor/thor/lib/thor/actions/directory.rb +0 -119
  39. data/lib/vendor/thor/lib/thor/actions/empty_directory.rb +0 -137
  40. data/lib/vendor/thor/lib/thor/actions/file_manipulation.rb +0 -317
  41. data/lib/vendor/thor/lib/thor/actions/inject_into_file.rb +0 -109
  42. data/lib/vendor/thor/lib/thor/base.rb +0 -654
  43. data/lib/vendor/thor/lib/thor/command.rb +0 -136
  44. data/lib/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -80
  45. data/lib/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
  46. data/lib/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -100
  47. data/lib/vendor/thor/lib/thor/error.rb +0 -32
  48. data/lib/vendor/thor/lib/thor/group.rb +0 -282
  49. data/lib/vendor/thor/lib/thor/invocation.rb +0 -172
  50. data/lib/vendor/thor/lib/thor/parser.rb +0 -4
  51. data/lib/vendor/thor/lib/thor/parser/argument.rb +0 -74
  52. data/lib/vendor/thor/lib/thor/parser/arguments.rb +0 -171
  53. data/lib/vendor/thor/lib/thor/parser/option.rb +0 -121
  54. data/lib/vendor/thor/lib/thor/parser/options.rb +0 -218
  55. data/lib/vendor/thor/lib/thor/rake_compat.rb +0 -72
  56. data/lib/vendor/thor/lib/thor/runner.rb +0 -322
  57. data/lib/vendor/thor/lib/thor/shell.rb +0 -88
  58. data/lib/vendor/thor/lib/thor/shell/basic.rb +0 -422
  59. data/lib/vendor/thor/lib/thor/shell/color.rb +0 -148
  60. data/lib/vendor/thor/lib/thor/shell/html.rb +0 -127
  61. data/lib/vendor/thor/lib/thor/util.rb +0 -270
  62. data/lib/vendor/thor/lib/thor/version.rb +0 -3
  63. data/lib/vendor/thor/spec/actions/create_file_spec.rb +0 -170
  64. data/lib/vendor/thor/spec/actions/create_link_spec.rb +0 -95
  65. data/lib/vendor/thor/spec/actions/directory_spec.rb +0 -169
  66. data/lib/vendor/thor/spec/actions/empty_directory_spec.rb +0 -129
  67. data/lib/vendor/thor/spec/actions/file_manipulation_spec.rb +0 -382
  68. data/lib/vendor/thor/spec/actions/inject_into_file_spec.rb +0 -135
  69. data/lib/vendor/thor/spec/actions_spec.rb +0 -331
  70. data/lib/vendor/thor/spec/base_spec.rb +0 -291
  71. data/lib/vendor/thor/spec/command_spec.rb +0 -80
  72. data/lib/vendor/thor/spec/core_ext/hash_with_indifferent_access_spec.rb +0 -48
  73. data/lib/vendor/thor/spec/core_ext/ordered_hash_spec.rb +0 -115
  74. data/lib/vendor/thor/spec/exit_condition_spec.rb +0 -19
  75. data/lib/vendor/thor/spec/fixtures/application.rb +0 -2
  76. data/lib/vendor/thor/spec/fixtures/app{1}/README +0 -3
  77. data/lib/vendor/thor/spec/fixtures/bundle/execute.rb +0 -6
  78. data/lib/vendor/thor/spec/fixtures/bundle/main.thor +0 -1
  79. data/lib/vendor/thor/spec/fixtures/command.thor +0 -10
  80. data/lib/vendor/thor/spec/fixtures/doc/%file_name%.rb.tt +0 -1
  81. data/lib/vendor/thor/spec/fixtures/doc/COMMENTER +0 -11
  82. data/lib/vendor/thor/spec/fixtures/doc/README +0 -3
  83. data/lib/vendor/thor/spec/fixtures/doc/block_helper.rb +0 -3
  84. data/lib/vendor/thor/spec/fixtures/doc/components/.empty_directory +0 -0
  85. data/lib/vendor/thor/spec/fixtures/doc/config.rb +0 -1
  86. data/lib/vendor/thor/spec/fixtures/doc/config.yaml.tt +0 -1
  87. data/lib/vendor/thor/spec/fixtures/doc/excluding/%file_name%.rb.tt +0 -1
  88. data/lib/vendor/thor/spec/fixtures/enum.thor +0 -10
  89. data/lib/vendor/thor/spec/fixtures/group.thor +0 -128
  90. data/lib/vendor/thor/spec/fixtures/invoke.thor +0 -118
  91. data/lib/vendor/thor/spec/fixtures/path with spaces b/data/lib/vendor/thor/spec/fixtures/path with → spaces +0 -0
  92. data/lib/vendor/thor/spec/fixtures/preserve/script.sh +0 -3
  93. data/lib/vendor/thor/spec/fixtures/script.thor +0 -220
  94. data/lib/vendor/thor/spec/fixtures/subcommand.thor +0 -17
  95. data/lib/vendor/thor/spec/group_spec.rb +0 -222
  96. data/lib/vendor/thor/spec/helper.rb +0 -67
  97. data/lib/vendor/thor/spec/invocation_spec.rb +0 -108
  98. data/lib/vendor/thor/spec/parser/argument_spec.rb +0 -53
  99. data/lib/vendor/thor/spec/parser/arguments_spec.rb +0 -66
  100. data/lib/vendor/thor/spec/parser/option_spec.rb +0 -202
  101. data/lib/vendor/thor/spec/parser/options_spec.rb +0 -400
  102. data/lib/vendor/thor/spec/rake_compat_spec.rb +0 -72
  103. data/lib/vendor/thor/spec/register_spec.rb +0 -197
  104. data/lib/vendor/thor/spec/runner_spec.rb +0 -241
  105. data/lib/vendor/thor/spec/shell/basic_spec.rb +0 -330
  106. data/lib/vendor/thor/spec/shell/color_spec.rb +0 -95
  107. data/lib/vendor/thor/spec/shell/html_spec.rb +0 -31
  108. data/lib/vendor/thor/spec/shell_spec.rb +0 -47
  109. data/lib/vendor/thor/spec/subcommand_spec.rb +0 -30
  110. data/lib/vendor/thor/spec/thor_spec.rb +0 -499
  111. data/lib/vendor/thor/spec/util_spec.rb +0 -196
  112. data/lib/vendor/thor/thor.gemspec +0 -24
  113. data/script/setup_build +0 -6
  114. data/spec/auth_spec.rb +0 -8
  115. data/spec_helper.rb +0 -6
@@ -1,400 +0,0 @@
1
- require 'helper'
2
- require 'thor/parser'
3
-
4
- describe Thor::Options do
5
- def create(opts, defaults={}, stop_on_unknown=false)
6
- opts.each do |key, value|
7
- opts[key] = Thor::Option.parse(key, value) unless value.is_a?(Thor::Option)
8
- end
9
-
10
- @opt = Thor::Options.new(opts, defaults, stop_on_unknown)
11
- end
12
-
13
- def parse(*args)
14
- @opt.parse(args.flatten)
15
- end
16
-
17
- def check_unknown!
18
- @opt.check_unknown!
19
- end
20
-
21
- def remaining
22
- @opt.remaining
23
- end
24
-
25
- describe "#to_switches" do
26
- it "turns true values into a flag" do
27
- expect(Thor::Options.to_switches(:color => true)).to eq("--color")
28
- end
29
-
30
- it "ignores nil" do
31
- expect(Thor::Options.to_switches(:color => nil)).to eq("")
32
- end
33
-
34
- it "ignores false" do
35
- expect(Thor::Options.to_switches(:color => false)).to eq("")
36
- end
37
-
38
- it "writes --name value for anything else" do
39
- expect(Thor::Options.to_switches(:format => "specdoc")).to eq('--format "specdoc"')
40
- end
41
-
42
- it "joins several values" do
43
- switches = Thor::Options.to_switches(:color => true, :foo => "bar").split(' ').sort
44
- expect(switches).to eq(['"bar"', "--color", "--foo"])
45
- end
46
-
47
- it "accepts arrays" do
48
- expect(Thor::Options.to_switches(:count => [1,2,3])).to eq("--count 1 2 3")
49
- end
50
-
51
- it "accepts hashes" do
52
- expect(Thor::Options.to_switches(:count => {:a => :b})).to eq("--count a:b")
53
- end
54
-
55
- it "accepts underscored options" do
56
- expect(Thor::Options.to_switches(:under_score_option => "foo bar")).to eq('--under_score_option "foo bar"')
57
- end
58
-
59
- end
60
-
61
- describe "#parse" do
62
- it "allows multiple aliases for a given switch" do
63
- create ["--foo", "--bar", "--baz"] => :string
64
- expect(parse("--foo", "12")["foo"]).to eq("12")
65
- expect(parse("--bar", "12")["foo"]).to eq("12")
66
- expect(parse("--baz", "12")["foo"]).to eq("12")
67
- end
68
-
69
- it "allows custom short names" do
70
- create "-f" => :string
71
- expect(parse("-f", "12")).to eq({"f" => "12"})
72
- end
73
-
74
- it "allows custom short-name aliases" do
75
- create ["--bar", "-f"] => :string
76
- expect(parse("-f", "12")).to eq({"bar" => "12"})
77
- end
78
-
79
- it "accepts conjoined short switches" do
80
- create ["--foo", "-f"] => true, ["--bar", "-b"] => true, ["--app", "-a"] => true
81
- opts = parse("-fba")
82
- expect(opts["foo"]).to be_true
83
- expect(opts["bar"]).to be_true
84
- expect(opts["app"]).to be_true
85
- end
86
-
87
- it "accepts conjoined short switches with input" do
88
- create ["--foo", "-f"] => true, ["--bar", "-b"] => true, ["--app", "-a"] => :required
89
- opts = parse "-fba", "12"
90
- expect(opts["foo"]).to be_true
91
- expect(opts["bar"]).to be_true
92
- expect(opts["app"]).to eq("12")
93
- end
94
-
95
- it "returns the default value if none is provided" do
96
- create :foo => "baz", :bar => :required
97
- expect(parse("--bar", "boom")["foo"]).to eq("baz")
98
- end
99
-
100
- it "returns the default value from defaults hash to required arguments" do
101
- create Hash[:bar => :required], Hash[:bar => "baz"]
102
- expect(parse["bar"]).to eq("baz")
103
- end
104
-
105
- it "gives higher priority to defaults given in the hash" do
106
- create Hash[:bar => true], Hash[:bar => false]
107
- expect(parse["bar"]).to eq(false)
108
- end
109
-
110
- it "raises an error for unknown switches" do
111
- create :foo => "baz", :bar => :required
112
- parse("--bar", "baz", "--baz", "unknown")
113
- expect{ check_unknown! }.to raise_error(Thor::UnknownArgumentError, "Unknown switches '--baz'")
114
- end
115
-
116
- it "skips leading non-switches" do
117
- create(:foo => "baz")
118
-
119
- expect(parse("asdf", "--foo", "bar")).to eq({"foo" => "bar"})
120
- end
121
-
122
- it "correctly recognizes things that look kind of like options, but aren't, as not options" do
123
- create(:foo => "baz")
124
- expect(parse("--asdf---asdf", "baz", "--foo", "--asdf---dsf--asdf")).to eq({"foo" => "--asdf---dsf--asdf"})
125
- check_unknown!
126
- end
127
-
128
- it "accepts underscores in commandline args hash for boolean" do
129
- create :foo_bar => :boolean
130
- expect(parse("--foo_bar")["foo_bar"]).to eq(true)
131
- expect(parse("--no_foo_bar")["foo_bar"]).to eq(false)
132
- end
133
-
134
- it "accepts underscores in commandline args hash for strings" do
135
- create :foo_bar => :string, :baz_foo => :string
136
- expect(parse("--foo_bar", "baz")["foo_bar"]).to eq("baz")
137
- expect(parse("--baz_foo", "foo bar")["baz_foo"]).to eq("foo bar")
138
- end
139
-
140
- it "interprets everything after -- as args instead of options" do
141
- create(:foo => :string, :bar => :required)
142
- expect(parse(%w[--bar abc moo -- --foo def -a])).to eq({"bar" => "abc"})
143
- expect(remaining).to eq(%w[moo --foo def -a])
144
- end
145
-
146
- it "ignores -- when looking for single option values" do
147
- create(:foo => :string, :bar => :required)
148
- expect(parse(%w[--bar -- --foo def -a])).to eq({"bar" => "--foo"})
149
- expect(remaining).to eq(%w[def -a])
150
- end
151
-
152
- it "ignores -- when looking for array option values" do
153
- create(:foo => :array)
154
- expect(parse(%w[--foo a b -- c d -e])).to eq({"foo" => %w[a b c d -e]})
155
- expect(remaining).to eq([])
156
- end
157
-
158
- it "ignores -- when looking for hash option values" do
159
- create(:foo => :hash)
160
- expect(parse(%w[--foo a:b -- c:d -e])).to eq({"foo" => {'a' => 'b', 'c' => 'd'}})
161
- expect(remaining).to eq(%w[-e])
162
- end
163
-
164
- it "ignores trailing --" do
165
- create(:foo => :string)
166
- expect(parse(%w[--foo --])).to eq({"foo" => nil})
167
- expect(remaining).to eq([])
168
- end
169
-
170
- describe "with no input" do
171
- it "and no switches returns an empty hash" do
172
- create({})
173
- expect(parse).to eq({})
174
- end
175
-
176
- it "and several switches returns an empty hash" do
177
- create "--foo" => :boolean, "--bar" => :string
178
- expect(parse).to eq({})
179
- end
180
-
181
- it "and a required switch raises an error" do
182
- create "--foo" => :required
183
- expect{ parse }.to raise_error(Thor::RequiredArgumentMissingError, "No value provided for required options '--foo'")
184
- end
185
- end
186
-
187
- describe "with one required and one optional switch" do
188
- before do
189
- create "--foo" => :required, "--bar" => :boolean
190
- end
191
-
192
- it "raises an error if the required switch has no argument" do
193
- expect{ parse("--foo") }.to raise_error(Thor::MalformattedArgumentError)
194
- end
195
-
196
- it "raises an error if the required switch isn't given" do
197
- expect{ parse("--bar") }.to raise_error(Thor::RequiredArgumentMissingError)
198
- end
199
-
200
- it "raises an error if the required switch is set to nil" do
201
- expect{ parse("--no-foo") }.to raise_error(Thor::RequiredArgumentMissingError)
202
- end
203
-
204
- it "does not raises an error if the required option has a default value" do
205
- options = {:required => true, :type => :string, :default => "baz"}
206
- create :foo => Thor::Option.new("foo", options), :bar => :boolean
207
- expect{ parse("--bar") }.not_to raise_error
208
- end
209
- end
210
-
211
- context "when stop_on_unknown is true" do
212
- before do
213
- create({:foo => :string, :verbose => :boolean}, {}, true)
214
- end
215
-
216
- it "stops parsing on first non-option" do
217
- expect(parse(%w[foo --verbose])).to eq({})
218
- expect(remaining).to eq(["foo", "--verbose"])
219
- end
220
-
221
- it "stops parsing on unknown option" do
222
- expect(parse(%w[--bar --verbose])).to eq({})
223
- expect(remaining).to eq(["--bar", "--verbose"])
224
- end
225
-
226
- it "retains -- after it has stopped parsing" do
227
- expect(parse(%w[--bar -- whatever])).to eq({})
228
- expect(remaining).to eq(["--bar", "--", "whatever"])
229
- end
230
-
231
- it "still accepts options that are given before non-options" do
232
- expect(parse(%w[--verbose foo])).to eq({"verbose" => true})
233
- expect(remaining).to eq(["foo"])
234
- end
235
-
236
- it "still accepts options that require a value" do
237
- expect(parse(%w[--foo bar baz])).to eq({"foo" => "bar"})
238
- expect(remaining).to eq(["baz"])
239
- end
240
-
241
- it "still interprets everything after -- as args instead of options" do
242
- expect(parse(%w[-- --verbose])).to eq({})
243
- expect(remaining).to eq(["--verbose"])
244
- end
245
- end
246
-
247
- describe "with :string type" do
248
- before do
249
- create ["--foo", "-f"] => :required
250
- end
251
-
252
- it "accepts a switch <value> assignment" do
253
- expect(parse("--foo", "12")["foo"]).to eq("12")
254
- end
255
-
256
- it "accepts a switch=<value> assignment" do
257
- expect(parse("-f=12")["foo"]).to eq("12")
258
- expect(parse("--foo=12")["foo"]).to eq("12")
259
- expect(parse("--foo=bar=baz")["foo"]).to eq("bar=baz")
260
- end
261
-
262
- it "must accept underscores switch=value assignment" do
263
- create :foo_bar => :required
264
- expect(parse("--foo_bar=http://example.com/under_score/")["foo_bar"]).to eq("http://example.com/under_score/")
265
- end
266
-
267
- it "accepts a --no-switch format" do
268
- create "--foo" => "bar"
269
- expect(parse("--no-foo")["foo"]).to be_nil
270
- end
271
-
272
- it "does not consume an argument for --no-switch format" do
273
- create "--cheese" => :string
274
- expect(parse('burger', '--no-cheese', 'fries')["cheese"]).to be_nil
275
- end
276
-
277
- it "accepts a --switch format on non required types" do
278
- create "--foo" => :string
279
- expect(parse("--foo")["foo"]).to eq("foo")
280
- end
281
-
282
- it "accepts a --switch format on non required types with default values" do
283
- create "--baz" => :string, "--foo" => "bar"
284
- expect(parse("--baz", "bang", "--foo")["foo"]).to eq("bar")
285
- end
286
-
287
- it "overwrites earlier values with later values" do
288
- expect(parse("--foo=bar", "--foo", "12")["foo"]).to eq("12")
289
- expect(parse("--foo", "12", "--foo", "13")["foo"]).to eq("13")
290
- end
291
- end
292
-
293
- describe "with :boolean type" do
294
- before do
295
- create "--foo" => false
296
- end
297
-
298
- it "accepts --opt assignment" do
299
- expect(parse("--foo")["foo"]).to eq(true)
300
- expect(parse("--foo", "--bar")["foo"]).to eq(true)
301
- end
302
-
303
- it "uses the default value if no switch is given" do
304
- expect(parse("")["foo"]).to eq(false)
305
- end
306
-
307
- it "accepts --opt=value assignment" do
308
- expect(parse("--foo=true")["foo"]).to eq(true)
309
- expect(parse("--foo=false")["foo"]).to eq(false)
310
- end
311
-
312
- it "accepts --[no-]opt variant, setting false for value" do
313
- expect(parse("--no-foo")["foo"]).to eq(false)
314
- end
315
-
316
- it "accepts --[skip-]opt variant, setting false for value" do
317
- expect(parse("--skip-foo")["foo"]).to eq(false)
318
- end
319
-
320
- it "will prefer 'no-opt' variant over inverting 'opt' if explicitly set" do
321
- create "--no-foo" => true
322
- expect(parse("--no-foo")["no-foo"]).to eq(true)
323
- end
324
-
325
- it "will prefer 'skip-opt' variant over inverting 'opt' if explicitly set" do
326
- create "--skip-foo" => true
327
- expect(parse("--skip-foo")["skip-foo"]).to eq(true)
328
- end
329
-
330
- it "accepts inputs in the human name format" do
331
- create :foo_bar => :boolean
332
- expect(parse("--foo-bar")["foo_bar"]).to eq(true)
333
- expect(parse("--no-foo-bar")["foo_bar"]).to eq(false)
334
- expect(parse("--skip-foo-bar")["foo_bar"]).to eq(false)
335
- end
336
-
337
- it "doesn't eat the next part of the param" do
338
- create :foo => :boolean
339
- expect(parse("--foo", "bar")).to eq({"foo" => true})
340
- expect(@opt.remaining).to eq(["bar"])
341
- end
342
- end
343
-
344
- describe "with :hash type" do
345
- before do
346
- create "--attributes" => :hash
347
- end
348
-
349
- it "accepts a switch=<value> assignment" do
350
- expect(parse("--attributes=name:string", "age:integer")["attributes"]).to eq({"name" => "string", "age" => "integer"})
351
- end
352
-
353
- it "accepts a switch <value> assignment" do
354
- expect(parse("--attributes", "name:string", "age:integer")["attributes"]).to eq({"name" => "string", "age" => "integer"})
355
- end
356
-
357
- it "must not mix values with other switches" do
358
- expect(parse("--attributes", "name:string", "age:integer", "--baz", "cool")["attributes"]).to eq({"name" => "string", "age" => "integer"})
359
- end
360
- end
361
-
362
- describe "with :array type" do
363
- before do
364
- create "--attributes" => :array
365
- end
366
-
367
- it "accepts a switch=<value> assignment" do
368
- expect(parse("--attributes=a", "b", "c")["attributes"]).to eq(["a", "b", "c"])
369
- end
370
-
371
- it "accepts a switch <value> assignment" do
372
- expect(parse("--attributes", "a", "b", "c")["attributes"]).to eq(["a", "b", "c"])
373
- end
374
-
375
- it "must not mix values with other switches" do
376
- expect(parse("--attributes", "a", "b", "c", "--baz", "cool")["attributes"]).to eq(["a", "b", "c"])
377
- end
378
- end
379
-
380
- describe "with :numeric type" do
381
- before do
382
- create "n" => :numeric, "m" => 5
383
- end
384
-
385
- it "accepts a -nXY assignment" do
386
- expect(parse("-n12")["n"]).to eq(12)
387
- end
388
-
389
- it "converts values to numeric types" do
390
- expect(parse("-n", "3", "-m", ".5")).to eq({"n" => 3, "m" => 0.5})
391
- end
392
-
393
- it "raises error when value isn't numeric" do
394
- expect{ parse("-n", "foo") }.to raise_error(Thor::MalformattedArgumentError,
395
- "Expected numeric value for '-n'; got \"foo\"")
396
- end
397
- end
398
-
399
- end
400
- end
@@ -1,72 +0,0 @@
1
- require 'helper'
2
- require 'thor/rake_compat'
3
- require 'rake/tasklib'
4
-
5
- $main = self
6
-
7
- class RakeTask < Rake::TaskLib
8
- def initialize
9
- define
10
- end
11
-
12
- def define
13
- $main.instance_eval do
14
- desc "Say it's cool"
15
- task :cool do
16
- puts "COOL"
17
- end
18
-
19
- namespace :hiper_mega do
20
- task :super do
21
- puts "HIPER MEGA SUPER"
22
- end
23
- end
24
- end
25
- end
26
- end
27
-
28
- class ThorTask < Thor
29
- include Thor::RakeCompat
30
- RakeTask.new
31
- end
32
-
33
- describe Thor::RakeCompat do
34
- it "sets the rakefile application" do
35
- expect(["rake_compat_spec.rb", "Thorfile"]).to include(Rake.application.rakefile)
36
- end
37
-
38
- it "adds rake tasks to thor classes too" do
39
- task = ThorTask.tasks["cool"]
40
- expect(task).to be
41
- end
42
-
43
- it "uses rake tasks descriptions on thor" do
44
- expect(ThorTask.tasks["cool"].description).to eq("Say it's cool")
45
- end
46
-
47
- it "gets usage from rake tasks name" do
48
- expect(ThorTask.tasks["cool"].usage).to eq("cool")
49
- end
50
-
51
- it "uses non namespaced name as description if non is available" do
52
- expect(ThorTask::HiperMega.tasks["super"].description).to eq("super")
53
- end
54
-
55
- it "converts namespaces to classes" do
56
- expect(ThorTask.const_get(:HiperMega)).to eq(ThorTask::HiperMega)
57
- end
58
-
59
- it "does not add tasks from higher namespaces in lowers namespaces" do
60
- expect(ThorTask.tasks["super"]).not_to be
61
- end
62
-
63
- it "invoking the thor task invokes the rake task" do
64
- expect(capture(:stdout) {
65
- ThorTask.start ["cool"]
66
- }).to eq("COOL\n")
67
-
68
- expect(capture(:stdout) {
69
- ThorTask::HiperMega.start ["super"]
70
- }).to eq("HIPER MEGA SUPER\n")
71
- end
72
- end