tty 0.8.1 → 0.9.1

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.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +3 -1
  4. data/lib/tty.rb +1 -1
  5. data/lib/tty/cli.rb +0 -1
  6. data/lib/tty/cmd.rb +0 -1
  7. data/lib/tty/commands/add.rb +0 -1
  8. data/lib/tty/commands/new.rb +5 -6
  9. data/lib/tty/gemspec.rb +0 -1
  10. data/lib/tty/licenses.rb +0 -1
  11. data/lib/tty/path_helpers.rb +0 -1
  12. data/lib/tty/plugins.rb +1 -1
  13. data/lib/tty/plugins/plugin.rb +1 -1
  14. data/lib/tty/templater.rb +0 -1
  15. data/lib/tty/version.rb +2 -2
  16. data/tty.gemspec +21 -18
  17. data/tty.manifest +7 -0
  18. metadata +63 -84
  19. data/.gitignore +0 -19
  20. data/.rspec +0 -4
  21. data/.travis.yml +0 -35
  22. data/.yardopts +0 -4
  23. data/CODE_OF_CONDUCT.md +0 -49
  24. data/Gemfile +0 -17
  25. data/Rakefile +0 -8
  26. data/appveyor.yml +0 -22
  27. data/images/tty.png +0 -0
  28. data/spec/fixtures/foo-0.0.1.gemspec +0 -17
  29. data/spec/integration/add_desc_args_spec.rb +0 -341
  30. data/spec/integration/add_force_spec.rb +0 -98
  31. data/spec/integration/add_namespaced_spec.rb +0 -291
  32. data/spec/integration/add_spec.rb +0 -535
  33. data/spec/integration/add_subcommand_spec.rb +0 -259
  34. data/spec/integration/new_author_spec.rb +0 -19
  35. data/spec/integration/new_license_spec.rb +0 -39
  36. data/spec/integration/new_namespaced_spec.rb +0 -228
  37. data/spec/integration/new_spec.rb +0 -354
  38. data/spec/integration/new_test_spec.rb +0 -21
  39. data/spec/integration/start_spec.rb +0 -21
  40. data/spec/spec_helper.rb +0 -73
  41. data/spec/unit/gemspec_spec.rb +0 -17
  42. data/spec/unit/plugins/activate_spec.rb +0 -13
  43. data/spec/unit/plugins/load_from_spec.rb +0 -28
  44. data/spec/unit/plugins/plugin/load_spec.rb +0 -32
  45. data/spec/unit/plugins/plugin/new_spec.rb +0 -13
  46. data/spec/unit/tty_spec.rb +0 -14
  47. data/tasks/console.rake +0 -11
  48. data/tasks/coverage.rake +0 -11
  49. data/tasks/spec.rake +0 -29
data/.gitignore DELETED
@@ -1,19 +0,0 @@
1
- *.swp
2
- *.swo
3
- *.gem
4
- *.rbc
5
- .bundle
6
- .config
7
- .yardoc
8
- Gemfile.lock
9
- InstalledFiles
10
- _yardoc
11
- coverage
12
- doc/
13
- lib/bundler/man
14
- pkg
15
- rdoc
16
- spec/reports
17
- test/tmp
18
- test/version_tmp
19
- tmp
data/.rspec DELETED
@@ -1,4 +0,0 @@
1
- --color
2
- --require spec_helper
3
- --format documentation
4
- --order random
@@ -1,35 +0,0 @@
1
- ---
2
- env:
3
- global:
4
- - CC_TEST_REPORTER_ID=76c3cb8a84b67e1e18aadacbe5a77861bc723dc1448f044bae995795b261569b
5
- language: ruby
6
- sudo: false
7
- bundler_args: --without yard guard benchmarks
8
- before_install: "gem install bundler -v 1.16.0"
9
- before_script:
10
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
11
- - chmod +x ./cc-test-reporter
12
- - ./cc-test-reporter before-build
13
- script: "bundle exec rake ci"
14
- after_script:
15
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
16
- rvm:
17
- - 2.0.0
18
- - 2.1.10
19
- - 2.2.8
20
- - 2.3.6
21
- - 2.4.3
22
- - 2.5.1
23
- - ruby-head
24
- - jruby-9000
25
- - jruby-head
26
- matrix:
27
- allow_failures:
28
- - rvm: ruby-head
29
- - rvm: jruby-head
30
- - rvm: jruby-9000
31
- fast_finish: true
32
- branches:
33
- only: master
34
- notifications:
35
- email: false
data/.yardopts DELETED
@@ -1,4 +0,0 @@
1
- --quiet
2
- README.md
3
- lib/**/*.rb
4
- LICENSE.txt
@@ -1,49 +0,0 @@
1
- # Contributor Code of Conduct
2
-
3
- As contributors and maintainers of this project, and in the interest of
4
- fostering an open and welcoming community, we pledge to respect all people who
5
- contribute through reporting issues, posting feature requests, updating
6
- documentation, submitting pull requests or patches, and other activities.
7
-
8
- We are committed to making participation in this project a harassment-free
9
- experience for everyone, regardless of level of experience, gender, gender
10
- identity and expression, sexual orientation, disability, personal appearance,
11
- body size, race, ethnicity, age, religion, or nationality.
12
-
13
- Examples of unacceptable behavior by participants include:
14
-
15
- * The use of sexualized language or imagery
16
- * Personal attacks
17
- * Trolling or insulting/derogatory comments
18
- * Public or private harassment
19
- * Publishing other's private information, such as physical or electronic
20
- addresses, without explicit permission
21
- * Other unethical or unprofessional conduct
22
-
23
- Project maintainers have the right and responsibility to remove, edit, or
24
- reject comments, commits, code, wiki edits, issues, and other contributions
25
- that are not aligned to this Code of Conduct, or to ban temporarily or
26
- permanently any contributor for other behaviors that they deem inappropriate,
27
- threatening, offensive, or harmful.
28
-
29
- By adopting this Code of Conduct, project maintainers commit themselves to
30
- fairly and consistently applying these principles to every aspect of managing
31
- this project. Project maintainers who do not follow or enforce the Code of
32
- Conduct may be permanently removed from the project team.
33
-
34
- This code of conduct applies both within project spaces and in public spaces
35
- when an individual is representing the project or its community.
36
-
37
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
- reported by contacting a project maintainer at [email]. All
39
- complaints will be reviewed and investigated and will result in a response that
40
- is deemed necessary and appropriate to the circumstances. Maintainers are
41
- obligated to maintain confidentiality with regard to the reporter of an
42
- incident.
43
-
44
- This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
- version 1.3.0, available at
46
- [http://contributor-covenant.org/version/1/3/0/][version]
47
-
48
- [homepage]: http://contributor-covenant.org
49
- [version]: http://contributor-covenant.org/version/1/3/0/
data/Gemfile DELETED
@@ -1,17 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- group :development do
6
- gem 'yard', '~> 0.9.12'
7
- gem 'timecop', '~> 0.9.1'
8
- end
9
-
10
- group :metrics do
11
- gem 'simplecov', '~> 0.16.1'
12
- gem 'yardstick', '~> 0.9.9'
13
- end
14
-
15
- group :benchmarks do
16
- gem 'benchmark-ips', '~> 2.7.2'
17
- end
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "bundler/gem_tasks"
4
-
5
- FileList['tasks/**/*.rake'].each(&method(:import))
6
-
7
- desc 'Run all specs'
8
- task ci: %w[ spec ]
@@ -1,22 +0,0 @@
1
- ---
2
- install:
3
- - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
4
- - ruby --version
5
- - gem --version
6
- - bundle install
7
- build: off
8
- test_script:
9
- - bundle exec rake ci
10
- environment:
11
- matrix:
12
- - ruby_version: "200"
13
- - ruby_version: "200-x64"
14
- - ruby_version: "21"
15
- - ruby_version: "21-x64"
16
- - ruby_version: "22"
17
- - ruby_version: "22-x64"
18
- - ruby_version: "23"
19
- - ruby_version: "23-x64"
20
- - ruby_version: "24"
21
- - ruby_version: "24-x64"
22
- - ruby_version: "25-x64"
Binary file
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = 'foo'
5
- spec.version = '0.0.1'
6
- spec.platform = 'ruby'
7
- spec.summary = 'A foo gem'
8
- spec.require_paths = ['lib']
9
-
10
- spec.add_dependency 'pastel'
11
- spec.add_dependency 'equatable'
12
- spec.add_dependency 'tty-command', '~> 0.3.0'
13
- spec.add_dependency 'tty-prompt', '~> 0.10.0'
14
- spec.add_dependency 'tty-spinner', '~> 0.4.0'
15
-
16
- spec.add_development_dependency 'rake'
17
- end
@@ -1,341 +0,0 @@
1
- RSpec.describe "`teletype add --desc --args` command", type: :cli do
2
- it "adds command with description and custom arguments" do
3
- app_path = tmp_path('newcli')
4
- cli_template = <<-EOS
5
- require 'thor'
6
-
7
- module Newcli
8
- class CLI < Thor
9
- end
10
- end
11
- EOS
12
- dir = {
13
- app_path => [
14
- 'lib' => [
15
- 'newcli' => [
16
- ['cli.rb', cli_template]
17
- ]
18
- ]
19
- ]
20
- }
21
- ::TTY::File.create_dir(dir, verbose: false)
22
- within_dir(app_path) do
23
- command = "teletype add config --test rspec --desc='Set and get configuration option' --args=arg1 arg2 --no-color"
24
-
25
- out, err, status = Open3.capture3(command)
26
-
27
- expect(out).to match <<-OUT
28
- create spec/integration/config_spec.rb
29
- create spec/unit/config_spec.rb
30
- create lib/newcli/commands/config.rb
31
- create lib/newcli/templates/config/.gitkeep
32
- inject lib/newcli/cli.rb
33
- OUT
34
- expect(err).to eq('')
35
- expect(status.exitstatus).to eq(0)
36
-
37
- expect(::File.read('lib/newcli/cli.rb')).to eq <<-EOS
38
- require 'thor'
39
-
40
- module Newcli
41
- class CLI < Thor
42
-
43
- desc 'config ARG1 ARG2', 'Set and get configuration option'
44
- method_option :help, aliases: '-h', type: :boolean,
45
- desc: 'Display usage information'
46
- def config(arg1, arg2)
47
- if options[:help]
48
- invoke :help, ['config']
49
- else
50
- require_relative 'commands/config'
51
- Newcli::Commands::Config.new(arg1, arg2, options).execute
52
- end
53
- end
54
- end
55
- end
56
- EOS
57
-
58
- expect(::File.read('lib/newcli/commands/config.rb')).to eq <<-EOS
59
- # frozen_string_literal: true
60
-
61
- require_relative '../command'
62
-
63
- module Newcli
64
- module Commands
65
- class Config < Newcli::Command
66
- def initialize(arg1, arg2, options)
67
- @arg1 = arg1
68
- @arg2 = arg2
69
- @options = options
70
- end
71
-
72
- def execute(input: $stdin, output: $stdout)
73
- # Command logic goes here ...
74
- output.puts "OK"
75
- end
76
- end
77
- end
78
- end
79
- EOS
80
-
81
- # test setup
82
- #
83
- expect(::File.read('spec/integration/config_spec.rb')).to eq <<-EOS
84
- RSpec.describe "`newcli config` command", type: :cli do
85
- it "executes `newcli help config` command successfully" do
86
- output = `newcli help config`
87
- expected_output = <<-OUT
88
- Usage:
89
- newcli config ARG1 ARG2
90
-
91
- Options:
92
- -h, [--help], [--no-help] # Display usage information
93
-
94
- Set and get configuration option
95
- OUT
96
-
97
- expect(output).to eq(expected_output)
98
- end
99
- end
100
- EOS
101
-
102
- expect(::File.read('spec/unit/config_spec.rb')).to eq <<-EOS
103
- require 'newcli/commands/config'
104
-
105
- RSpec.describe Newcli::Commands::Config do
106
- it "executes `config` command successfully" do
107
- output = StringIO.new
108
- arg1 = nil
109
- arg2 = nil
110
- options = {}
111
- command = Newcli::Commands::Config.new(arg1, arg2, options)
112
-
113
- command.execute(output: output)
114
-
115
- expect(output.string).to eq("OK\\n")
116
- end
117
- end
118
- EOS
119
- end
120
- end
121
-
122
- it "adds command with variadic number of arguments" do
123
- app_path = tmp_path('newcli')
124
- cli_template = <<-EOS
125
- require 'thor'
126
-
127
- module Newcli
128
- class CLI < Thor
129
- end
130
- end
131
- EOS
132
- dir = {
133
- app_path => [
134
- 'lib' => [
135
- 'newcli' => [
136
- ['cli.rb', cli_template]
137
- ]
138
- ]
139
- ]
140
- }
141
- ::TTY::File.create_dir(dir, verbose: false)
142
- within_dir(app_path) do
143
- command = "teletype add config --args=arg1 *names --test=minitest --no-color"
144
-
145
- out, err, status = Open3.capture3(command)
146
-
147
- expect(out).to match <<-OUT
148
- create test/integration/config_test.rb
149
- create test/unit/config_test.rb
150
- create lib/newcli/commands/config.rb
151
- create lib/newcli/templates/config/.gitkeep
152
- inject lib/newcli/cli.rb
153
- OUT
154
- expect(err).to eq('')
155
- expect(status.exitstatus).to eq(0)
156
-
157
- expect(::File.read('lib/newcli/cli.rb')).to eq <<-EOS
158
- require 'thor'
159
-
160
- module Newcli
161
- class CLI < Thor
162
-
163
- desc 'config ARG1 NAMES...', 'Command description...'
164
- method_option :help, aliases: '-h', type: :boolean,
165
- desc: 'Display usage information'
166
- def config(arg1, *names)
167
- if options[:help]
168
- invoke :help, ['config']
169
- else
170
- require_relative 'commands/config'
171
- Newcli::Commands::Config.new(arg1, names, options).execute
172
- end
173
- end
174
- end
175
- end
176
- EOS
177
-
178
- expect(::File.read('lib/newcli/commands/config.rb')).to eq <<-EOS
179
- # frozen_string_literal: true
180
-
181
- require_relative '../command'
182
-
183
- module Newcli
184
- module Commands
185
- class Config < Newcli::Command
186
- def initialize(arg1, names, options)
187
- @arg1 = arg1
188
- @names = names
189
- @options = options
190
- end
191
-
192
- def execute(input: $stdin, output: $stdout)
193
- # Command logic goes here ...
194
- output.puts "OK"
195
- end
196
- end
197
- end
198
- end
199
- EOS
200
-
201
- # test/integration/config_test.rb
202
- #
203
- expect(::File.read('test/integration/config_test.rb')).to eq <<-EOS
204
- require 'test_helper'
205
- require 'newcli/commands/config'
206
-
207
- class Newcli::Commands::ConfigTest < Minitest::Test
208
- def test_executes_newcli_help_config_command_successfully
209
- output = `newcli help config`
210
- expected_output = <<-OUT
211
- Usage:
212
- newcli config ARG1 NAMES...
213
-
214
- Options:
215
- -h, [--help], [--no-help] # Display usage information
216
-
217
- Command description...
218
- OUT
219
-
220
- assert_equal expected_output, output
221
- end
222
- end
223
- EOS
224
-
225
- # test/unit/config_test.rb
226
- #
227
- expect(::File.read('test/unit/config_test.rb')).to eq <<-EOS
228
- require 'test_helper'
229
- require 'newcli/commands/config'
230
-
231
- class Newcli::Commands::ConfigTest < Minitest::Test
232
- def test_executes_config_command_successfully
233
- output = StringIO.new
234
- arg1 = nil
235
- names = nil
236
- options = {}
237
- command = Newcli::Commands::Config.new(arg1, names, options)
238
-
239
- command.execute(output: output)
240
-
241
- assert_equal "OK\\n", output.string
242
- end
243
- end
244
- EOS
245
- end
246
- end
247
-
248
- it "adds subcommand with description and custom arguments" do
249
- app_path = tmp_path('newcli')
250
- cli_template = <<-EOS
251
- require 'thor'
252
-
253
- module Newcli
254
- class CLI < Thor
255
- end
256
- end
257
- EOS
258
- dir = {
259
- app_path => [
260
- 'lib' => [
261
- 'newcli' => [
262
- ['cli.rb', cli_template]
263
- ]
264
- ]
265
- ]
266
- }
267
- ::TTY::File.create_dir(dir, verbose: false)
268
- within_dir(app_path) do
269
- command = "teletype add config set --desc='Set configuration option' --args=name 'value = nil'"
270
-
271
- _, err, status = Open3.capture3(command)
272
-
273
- expect(err).to eq('')
274
- expect(status.exitstatus).to eq(0)
275
-
276
- expect(::File.read('lib/newcli/cli.rb')).to eq <<-EOS
277
- require 'thor'
278
-
279
- module Newcli
280
- class CLI < Thor
281
-
282
- require_relative 'commands/config'
283
- register Newcli::Commands::Config, 'config', 'config [SUBCOMMAND]', 'Set configuration option'
284
- end
285
- end
286
- EOS
287
-
288
- expect(::File.read('lib/newcli/commands/config.rb')).to eq <<-EOS
289
- # frozen_string_literal: true
290
-
291
- require 'thor'
292
-
293
- module Newcli
294
- module Commands
295
- class Config < Thor
296
-
297
- namespace :config
298
-
299
- desc 'set NAME [VALUE]', 'Set configuration option'
300
- method_option :help, aliases: '-h', type: :boolean,
301
- desc: 'Display usage information'
302
- def set(name, value = nil)
303
- if options[:help]
304
- invoke :help, ['set']
305
- else
306
- require_relative 'config/set'
307
- Newcli::Commands::Config::Set.new(name, value, options).execute
308
- end
309
- end
310
- end
311
- end
312
- end
313
- EOS
314
-
315
- expect(::File.read('lib/newcli/commands/config/set.rb')).to eq <<-EOS
316
- # frozen_string_literal: true
317
-
318
- require_relative '../../command'
319
-
320
- module Newcli
321
- module Commands
322
- class Config
323
- class Set < Newcli::Command
324
- def initialize(name, value, options)
325
- @name = name
326
- @value = value
327
- @options = options
328
- end
329
-
330
- def execute(input: $stdin, output: $stdout)
331
- # Command logic goes here ...
332
- output.puts "OK"
333
- end
334
- end
335
- end
336
- end
337
- end
338
- EOS
339
- end
340
- end
341
- end