tty 0.5.0 → 0.6.0
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.
- 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]
|
6
6
|
[][travis]
|
7
|
+
[][appveyor]
|
7
8
|
[][codeclimate]
|
8
9
|
[][coveralls]
|
9
10
|
[][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.
|