tty 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +9 -9
- data/CHANGELOG.md +27 -10
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +2 -2
- data/README.md +40 -182
- data/appveyor.yml +23 -0
- data/lib/tty.rb +2 -65
- data/lib/tty/plugins.rb +46 -19
- data/lib/tty/plugins/plugin.rb +4 -9
- data/lib/tty/version.rb +1 -1
- data/spec/fixtures/foo-0.0.1.gemspec +17 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/tty/plugins/find_spec.rb +11 -19
- data/spec/tty/plugins/load_spec.rb +6 -10
- data/spec/tty/plugins/plugin/load_spec.rb +15 -5
- data/spec/tty/plugins/plugin/new_spec.rb +3 -6
- data/spec/tty/tty_spec.rb +1 -7
- data/tty.gemspec +11 -9
- metadata +89 -94
- data/lib/tty/logger.rb +0 -85
- data/lib/tty/support/coercion.rb +0 -30
- data/lib/tty/support/delegatable.rb +0 -44
- data/lib/tty/support/unicode.rb +0 -35
- data/lib/tty/system.rb +0 -14
- data/lib/tty/system/editor.rb +0 -114
- data/lib/tty/terminal.rb +0 -21
- data/lib/tty/terminal/home.rb +0 -42
- data/lib/tty/vector.rb +0 -116
- data/spec/tty/logger/log_spec.rb +0 -23
- data/spec/tty/logger/new_spec.rb +0 -36
- data/spec/tty/logger/valid_level_spec.rb +0 -33
- data/spec/tty/support/coercion_spec.rb +0 -41
- data/spec/tty/support/delegatable_spec.rb +0 -28
- data/spec/tty/support/fixtures/classes.rb +0 -19
- data/spec/tty/system/editor/available_spec.rb +0 -40
- data/spec/tty/system/editor/build_spec.rb +0 -32
- data/spec/tty/system/editor/command_spec.rb +0 -17
- data/spec/tty/system/editor/executables_spec.rb +0 -13
- data/spec/tty/system/editor/invoke_spec.rb +0 -34
- data/spec/tty/system/editor/open_spec.rb +0 -29
- data/spec/tty/terminal/home_spec.rb +0 -27
- data/spec/tty/vector/new_spec.rb +0 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07e4420225b26d591c5808c75a22345b74829df6
|
4
|
+
data.tar.gz: a409678307999ca35df8470451c18ee823de4899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2d142aa5bac867c62e8f3c21173a7855b3d4a18cc0c356d8939944871f87de6fa4fa0aa32770eaa20f0044ca380ee1a5f2097afd4479c80b61e153e32d37d37
|
7
|
+
data.tar.gz: 059ea6e8da18de39646be9da9cc3cc115b0fc89a2354bf3251e3ce6846a55beb7010863a82f92372a954af9d6a34a7c7bd2ba4c242f91a95956391e8461003a8
|
data/.travis.yml
CHANGED
@@ -5,20 +5,20 @@ cache: bundler
|
|
5
5
|
bundler_args: --without yard guard benchmarks
|
6
6
|
script: "bundle exec rake ci"
|
7
7
|
rvm:
|
8
|
-
-
|
9
|
-
- 2.
|
10
|
-
- 2.
|
11
|
-
- 2.
|
12
|
-
- 2.
|
8
|
+
- 2.0.0
|
9
|
+
- 2.1.10
|
10
|
+
- 2.2.6
|
11
|
+
- 2.3.3
|
12
|
+
- 2.4.0
|
13
13
|
- ruby-head
|
14
|
-
-
|
15
|
-
- jruby-
|
14
|
+
- jruby-9000
|
15
|
+
- jruby-head
|
16
|
+
- rbx-3
|
16
17
|
matrix:
|
17
|
-
include:
|
18
|
-
- rvm: jruby-head
|
19
18
|
allow_failures:
|
20
19
|
- rvm: ruby-head
|
21
20
|
- rvm: jruby-head
|
21
|
+
- rvm: rbx-3
|
22
22
|
fast_finish: true
|
23
23
|
branches:
|
24
24
|
only: master
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
+
## [v0.6.0] - 2017-01-28
|
4
|
+
|
5
|
+
### Added
|
6
|
+
* Add tty-editor dependency
|
7
|
+
* Add tty-file dependency
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
* Change to use plugin system to load all tty dependencies
|
11
|
+
* Remove coercion, delegatable & unicode support
|
12
|
+
* Remove error types from TTY module namespace
|
13
|
+
* Remove System::Editor
|
14
|
+
* Remove Vector
|
15
|
+
* Remove Logger
|
16
|
+
* Remove Terminal & Terminal:Home
|
17
|
+
|
3
18
|
## [v0.5.0] - 2016-05-30
|
4
19
|
|
5
20
|
### Added
|
@@ -88,13 +103,15 @@
|
|
88
103
|
* Improve method documentation across library
|
89
104
|
* Semantic changes across library to improve code readability
|
90
105
|
|
91
|
-
[v0.
|
92
|
-
[v0.
|
93
|
-
[v0.
|
94
|
-
[v0.3.
|
95
|
-
[v0.
|
96
|
-
[v0.
|
97
|
-
[v0.1
|
98
|
-
[v0.
|
99
|
-
[v0.1.
|
100
|
-
[v0.1.
|
106
|
+
[v0.6.0]: https://github.com/piotrmurach/tty/compare/v0.5.0...v0.6.0
|
107
|
+
[v0.5.0]: https://github.com/piotrmurach/tty/compare/v0.4.0...v0.5.0
|
108
|
+
[v0.4.0]: https://github.com/piotrmurach/tty/compare/v0.3.2...v0.4.0
|
109
|
+
[v0.3.2]: https://github.com/piotrmurach/tty/compare/v0.3.1...v0.3.2
|
110
|
+
[v0.3.1]: https://github.com/piotrmurach/tty/compare/v0.3.0...v0.3.1
|
111
|
+
[v0.3.0]: https://github.com/piotrmurach/tty/compare/v0.2.1...v0.3.0
|
112
|
+
[v0.2.1]: https://github.com/piotrmurach/tty/compare/v0.2.0...v0.2.1
|
113
|
+
[v0.2.0]: https://github.com/piotrmurach/tty/compare/v0.1.3...v0.2.0
|
114
|
+
[v0.1.3]: https://github.com/piotrmurach/tty/compare/v0.1.2...v0.1.3
|
115
|
+
[v0.1.2]: https://github.com/piotrmurach/tty/compare/v0.1.1...v0.1.2
|
116
|
+
[v0.1.1]: https://github.com/piotrmurach/tty/compare/v0.1.0...v0.1.1
|
117
|
+
[v0.1.0]: https://github.com/piotrmurach/tty/compare/v0.0.9...v0.1.0
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,49 @@
|
|
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
CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
gem 'rspec', '~> 3.
|
6
|
+
gem 'rspec', '~> 3.5.0'
|
7
7
|
gem 'yard', '~> 0.8.7'
|
8
8
|
gem 'timecop', '~> 0.7.1'
|
9
9
|
end
|
@@ -12,7 +12,7 @@ group :metrics do
|
|
12
12
|
gem 'coveralls', '~> 0.8.1'
|
13
13
|
gem 'simplecov', '~> 0.10.0'
|
14
14
|
gem 'yardstick', '~> 0.9.9'
|
15
|
-
gem '
|
15
|
+
gem 'term-ansicolor', '=1.3.2'
|
16
16
|
end
|
17
17
|
|
18
18
|
group :benchmarks do
|
data/README.md
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
<br/>
|
5
5
|
[![Gem Version](https://badge.fury.io/rb/tty.svg)][gem]
|
6
6
|
[![Build Status](https://secure.travis-ci.org/piotrmurach/tty.svg?branch=master)][travis]
|
7
|
+
[![Build status](https://ci.appveyor.com/api/projects/status/0a85w6yr40lmuo3o?svg=true)][appveyor]
|
7
8
|
[![Code Climate](https://codeclimate.com/github/piotrmurach/tty/badges/gpa.svg)][codeclimate]
|
8
9
|
[![Coverage Status](https://coveralls.io/repos/piotrmurach/tty/badge.svg?branch=master)][coveralls]
|
9
10
|
[![Inline docs](http://inch-ci.org/github/piotrmurach/tty.svg?branch=master)][inchpages]
|
@@ -11,6 +12,7 @@
|
|
11
12
|
|
12
13
|
[gem]: http://badge.fury.io/rb/tty
|
13
14
|
[travis]: http://travis-ci.org/piotrmurach/tty
|
15
|
+
[appveyor]: https://ci.appveyor.com/project/piotrmurach/tty
|
14
16
|
[codeclimate]: https://codeclimate.com/github/piotrmurach/tty
|
15
17
|
[coveralls]: https://coveralls.io/r/piotrmurach/tty
|
16
18
|
[inchpages]: http://inch-ci.org/github/piotrmurach/tty
|
@@ -26,29 +28,21 @@ Even more so, any command line application needs a clear way of communicating it
|
|
26
28
|
|
27
29
|
## Features
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
-
*
|
32
|
-
* Terminal output colorization. [status: ✔ ]
|
33
|
-
* Terminal output paging. [status: ✔ ]
|
34
|
-
* System detection utilities. [status: ✔ ]
|
35
|
-
* Command detection utilities. [status: ✔ ]
|
36
|
-
* Text manipulation(wrapping/truncation) [status: ✔ ]
|
37
|
-
* Terminal progress bars drawing. [status: ✔ ]
|
38
|
-
* Terminal spinners. [status: ✔ ]
|
39
|
-
* Interactive prompt for user input. [status: ✔ ]
|
40
|
-
* File diffs. [status: TODO]
|
41
|
-
* Configuration file management. [status: TODO]
|
42
|
-
* Logging [status: In Progress]
|
43
|
-
* Plugin ecosystem [status: TODO]
|
31
|
+
* Jump-start development of your command line app the Unix way.
|
32
|
+
* Fully modular, choose out of many [components](#2-components) to suite your needs.
|
33
|
+
* All tty components are small packages that do one thing well.
|
44
34
|
* Fully tested with major ruby interpreters.
|
45
35
|
|
46
36
|
## Installation
|
47
37
|
|
48
|
-
Add this line to your application's Gemfile:
|
38
|
+
Add this line to your application's Gemfile to install all components:
|
49
39
|
|
50
40
|
gem 'tty'
|
51
41
|
|
42
|
+
or install a particular component:
|
43
|
+
|
44
|
+
gem 'tty-*'
|
45
|
+
|
52
46
|
And then execute:
|
53
47
|
|
54
48
|
$ bundle
|
@@ -60,18 +54,7 @@ Or install it yourself as:
|
|
60
54
|
## Contents
|
61
55
|
|
62
56
|
* [1. Overview](#1-overview)
|
63
|
-
* [2.
|
64
|
-
* [3. Drawing tables](#3-drawing-tables)
|
65
|
-
* [4. Drawing progress bars](#4-drawing-progress-bars)
|
66
|
-
* [5. Drawing spinners](#5-drawing-spinners)
|
67
|
-
* [6. Output coloring](#6-output-coloring)
|
68
|
-
* [7. Output paging](#7-output-paging)
|
69
|
-
* [8. Detecting screen properties](#8-detecting-screen-properties)
|
70
|
-
* [9. Detecting platform](#9-detecting-platform)
|
71
|
-
* [10. Detecting color capabilities](#10-detecting-color-capabilities)
|
72
|
-
* [11. Searching executables](#11-searching-executables)
|
73
|
-
* [12. Moving cursor](#12-moving-cursor)
|
74
|
-
* [13. Setting editor](#13-setting-editor)
|
57
|
+
* [2. Components](#2-components)
|
75
58
|
|
76
59
|
## 1. Overview
|
77
60
|
|
@@ -131,112 +114,14 @@ pager = TTY::Pager.new
|
|
131
114
|
pager.page('Very long text...')
|
132
115
|
```
|
133
116
|
|
134
|
-
To
|
135
|
-
|
136
|
-
```ruby
|
137
|
-
screen = TTY::Screen.new
|
138
|
-
screen.size # => [51, 280]
|
139
|
-
screen.width # => 280
|
140
|
-
screen.height # => 51
|
141
|
-
```
|
142
|
-
|
143
|
-
`TTY::Color` allows you to check if terminal supports color:
|
144
|
-
|
145
|
-
```ruby
|
146
|
-
TTY::Color.supports? # => true
|
147
|
-
TTY::Color.mode # => 64
|
148
|
-
```
|
149
|
-
|
150
|
-
To move cursor around the terminal use `TTY::Cursor`:
|
151
|
-
|
152
|
-
```ruby
|
153
|
-
cursor = TTY::Cursor
|
154
|
-
print cursor.up(5) + cursor.forward(2)
|
155
|
-
```
|
156
|
-
|
157
|
-
## 2. Prompting for input
|
158
|
-
|
159
|
-
**TTY** relies on [tty-prompt](https://github.com/piotrmurach/tty-prompt#ttyprompt) component for processing user input.
|
117
|
+
To run external commands with output logging, capturing stdout and stderr use `TTY::Command`:
|
160
118
|
|
161
119
|
```ruby
|
162
|
-
|
163
|
-
|
120
|
+
cmd = TTY::Command.new
|
121
|
+
out, err = cmd.run('cat ~/.bashrc | grep alias')
|
164
122
|
```
|
165
123
|
|
166
|
-
|
167
|
-
|
168
|
-
## 3. Drawing tables
|
169
|
-
|
170
|
-
**TTY** uses the [tty-table](https://github.com/piotrmurach/tty-table) component in order to convert data into table and render as string output in tabular form. For example, to render data with ASCII border:
|
171
|
-
|
172
|
-
```ruby
|
173
|
-
table = TTY::Table.new ['header1','header2'], [['a1','a2'], ['b1','b2']]
|
174
|
-
table.render(:ascii)
|
175
|
-
# =>
|
176
|
-
+-------+-------+
|
177
|
-
|header1|header2|
|
178
|
-
+-------+-------+
|
179
|
-
|a1 |a2 |
|
180
|
-
|b1 |b2 |
|
181
|
-
+-------+-------+
|
182
|
-
```
|
183
|
-
|
184
|
-
Please refer to [documentation](https://github.com/piotrmurach/tty-table) for complete API.
|
185
|
-
|
186
|
-
## 4. Drawing progress bars
|
187
|
-
|
188
|
-
In order to draw progress bars in terminal, **TTY** uses the [tty-progressbar](https://github.com/piotrmurach/tty-progressbar) component.
|
189
|
-
|
190
|
-
For example, to render basic download bar do:
|
191
|
-
|
192
|
-
```ruby
|
193
|
-
bar = TTY::ProgressBar.new("downloading [:bar]", total: 30)
|
194
|
-
30.times { bar.advance }
|
195
|
-
```
|
196
|
-
|
197
|
-
Please refer to [documentation](https://github.com/piotrmurach/tty-progressbar) for complete API.
|
198
|
-
|
199
|
-
## 5. Drawing spinners
|
200
|
-
|
201
|
-
**TTY** uses the [tty-spinner](https://github.com/piotrmurach/tty-spinner) component to handle terminal spinning animation. For instance, to create a simple spinner do:
|
202
|
-
|
203
|
-
```ruby
|
204
|
-
spinner = TTY::Spinner.new("[:spinner] Loading ...", format: :pulse_2)
|
205
|
-
30.times { spinner.spin }
|
206
|
-
spinner.stop('Done!')
|
207
|
-
```
|
208
|
-
|
209
|
-
Please refer to [documentation](https://github.com/piotrmurach/tty-spinner) for complete API.
|
210
|
-
|
211
|
-
## 6. Output coloring
|
212
|
-
|
213
|
-
In order to colorize strings, **TTY** uses the [pastel](https://github.com/piotrmurach/pastel) component:
|
214
|
-
|
215
|
-
```ruby
|
216
|
-
pastel = Pastel.new
|
217
|
-
pastel.red.on_green.bold 'text...' # => red bold text on green background
|
218
|
-
```
|
219
|
-
|
220
|
-
Please refer to [documentation](https://github.com/piotrmurach/pastel#contents) for complete API.
|
221
|
-
|
222
|
-
## 7. Output paging
|
223
|
-
|
224
|
-
To page terminal output **TTY** relies on [tty-pager](https://github.com/piotrmurach/tty-pager) component.
|
225
|
-
|
226
|
-
For example to page terminal output do (on non unix systems falls back to ruby implementation):
|
227
|
-
|
228
|
-
```ruby
|
229
|
-
pager = TTY::Pager.new
|
230
|
-
pager.page('Very long text...')
|
231
|
-
```
|
232
|
-
|
233
|
-
Please refer to [documentation](https://github.com/piotrmurach/tty-pager) for complete API.
|
234
|
-
|
235
|
-
## 8. Detecting screen properties
|
236
|
-
|
237
|
-
**TTY** uses the [tty-screen](https://github.com/piotrmurach/tty-screen) component to measure the screen properties.
|
238
|
-
|
239
|
-
For example to get screen size do:
|
124
|
+
To measure screen size use `TTY::Screen`:
|
240
125
|
|
241
126
|
```ruby
|
242
127
|
screen = TTY::Screen.new
|
@@ -245,84 +130,57 @@ screen.width # => 280
|
|
245
130
|
screen.height # => 51
|
246
131
|
```
|
247
132
|
|
248
|
-
|
249
|
-
|
250
|
-
## 9. Detecting platform
|
251
|
-
|
252
|
-
To check for platform properties **TTY** uses [tty-platform](https://github.com/piotrmurach/tty-platform) component.
|
253
|
-
|
254
|
-
```ruby
|
255
|
-
platform = TTY::Platform.new
|
256
|
-
platform.cpu # => 'x86_64'
|
257
|
-
platform.os # => 'darwin'
|
258
|
-
platform.version # => '10.6.1'
|
259
|
-
```
|
260
|
-
|
261
|
-
In addition, there are more generic utilities to check for type of operating system:
|
262
|
-
|
263
|
-
```
|
264
|
-
TTY::Platform.unix? # => true
|
265
|
-
TTY::Platform.windows? # => false
|
266
|
-
```
|
267
|
-
|
268
|
-
Please refer to [documentation](https://github.com/piotrmurach/tty-platform) for complete API.
|
269
|
-
|
270
|
-
## 10. Detecting color capabilities
|
271
|
-
|
272
|
-
[tty-color](https://github.com/piotrmurach/tty-color) component allows **TTY** detect color support and mode in terminal emulator:
|
133
|
+
`TTY::Color` allows you to check if terminal supports color and the color mode:
|
273
134
|
|
274
135
|
```ruby
|
275
136
|
TTY::Color.supports? # => true
|
276
137
|
TTY::Color.mode # => 64
|
277
138
|
```
|
278
139
|
|
279
|
-
Please refer to [documentation](https://github.com/piotrmurach/tty-color) for complete API.
|
280
|
-
|
281
|
-
## 11. Searching executables
|
282
|
-
|
283
|
-
To find executable path **TTY** uses [tty-which](https://github.com/piotrmurach/tty-which#ttywhich) component.
|
284
|
-
|
285
140
|
For instance, to find out if `less` utility is actually supported by the system do:
|
286
141
|
|
287
142
|
```ruby
|
288
143
|
TTY::Which.which('less') # => '/usr/bin/less'
|
289
144
|
```
|
290
145
|
|
291
|
-
|
292
|
-
|
293
|
-
## 12. Moving cursor
|
294
|
-
|
295
|
-
To perform terminal cursor movements use [tty-cursor](https://github.com/piotrmurach/tty-cursor#ttycursor) component.
|
296
|
-
|
297
|
-
For example, to move cursor up by 5 rows and forward by 2 columns:
|
146
|
+
To move cursor around the terminal use `TTY::Cursor`:
|
298
147
|
|
299
148
|
```ruby
|
300
149
|
cursor = TTY::Cursor
|
301
150
|
print cursor.up(5) + cursor.forward(2)
|
302
151
|
```
|
303
152
|
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
153
|
+
## 2. Components
|
154
|
+
|
155
|
+
| Component | Description | API docs |
|
156
|
+
| ------------ | ----------- | -------- |
|
157
|
+
| [pastel](https://github.com/piotrmurach/pastel) | Terminal strings styling with intuitive and clean API. | [docs](http://www.rubydoc.info/gems/pastel) |
|
158
|
+
| [tty-color](https://github.com/piotrmurach/tty-color) | Terminal color capabilities detection. | [docs](http://www.rubydoc.info/gems/tty-color) |
|
159
|
+
| [tty-command](https://github.com/piotrmurach/tty-command) | Execute shell commands with pretty logging and capture stdout, stderr and exit status. | [docs](http://www.rubydoc.info/gems/tty-command) |
|
160
|
+
| [tty-cursor](https://github.com/piotrmurach/tty-cursor) | Move terminal cursor around. | [docs](http://www.rubydoc.info/gems/tty-cursor) |
|
161
|
+
| [tty-editor](https://github.com/piotrmurach/tty-editor) | Open a file or text in the user preferred editor. | [docs](http://www.rubydoc.info/gems/tty-editor) |
|
162
|
+
| [tty-file](https://github.com/piotrmurach/tty-file) | File manipulation utility methods. | [docs](http://www.rubydoc.info/gems/tty-file) |
|
163
|
+
| [tty-pager](https://github.com/piotrmurach/tty-pager) | Terminal output paging in a cross-platform way. | [docs](http://www.rubydoc.info/gems/tty-pager) |
|
164
|
+
| [tty-platform](https://github.com/piotrmurach/tty-platform) | Detecting different operating systems. | [docs](http://www.rubydoc.info/gems/tty-platform) |
|
165
|
+
| [tty-progressbar](https://github.com/piotrmurach/tty-progressbar) | A flexible progress bars drawing in terminal emulators. | [docs](http://www.rubydoc.info/gems/tty-progressbar) |
|
166
|
+
| [tty-prompt](https://github.com/piotrmurach/tty-prompt) | A beautiful and powerful interactive command line prompt. | [docs](http://www.rubydoc.info/gems/tty-prompt) |
|
167
|
+
| [tty-screen](https://github.com/piotrmurach/tty-screen) | Terminal screen properties detection. | [docs](http://www.rubydoc.info/gems/tty-screen)
|
168
|
+
| [tty-spinner](https://github.com/piotrmurach/tty-spinner) | A terminal spinner for tasks with non-deterministic time.| [docs](http://www.rubydoc.info/gems/tty-spinner) |
|
169
|
+
| [tty-table](https://github.com/piotrmurach/tty-table) | A flexible and intuitive table output generator. | [docs](http://www.rubydoc.info/gems/tty-table) |
|
170
|
+
| [tty-which](https://github.com/piotrmurach/tty-which) | Platform independent implementation of Unix which command. | [docs](http://www.rubydoc.info/gems/tty-which) |
|
317
171
|
|
318
172
|
## Contributing
|
319
173
|
|
174
|
+
You can contribute by posting `feature requests`, evaluating the APIs or simply by hacking on TTY components:
|
175
|
+
|
320
176
|
1. Fork it
|
321
177
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
322
178
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
323
179
|
4. Push to the branch (`git push origin my-new-feature`)
|
324
180
|
5. Create new Pull Request
|
325
181
|
|
182
|
+
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
183
|
+
|
326
184
|
## Copyright
|
327
185
|
|
328
|
-
Copyright (c) 2012-
|
186
|
+
Copyright (c) 2012-2017 Piotr Murach. See LICENSE for further details.
|