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
data/tty.gemspec
CHANGED
@@ -17,19 +17,21 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency 'tty-color', '~> 0.
|
20
|
+
spec.add_dependency 'tty-color', '~> 0.4.0'
|
21
21
|
spec.add_dependency 'tty-cursor', '~> 0.3.0'
|
22
|
-
spec.add_dependency 'tty-command', '~> 0.
|
23
|
-
spec.add_dependency 'tty-
|
22
|
+
spec.add_dependency 'tty-command', '~> 0.3.0'
|
23
|
+
spec.add_dependency 'tty-editor', '~> 0.1.0'
|
24
|
+
spec.add_dependency 'tty-file', '~> 0.2.0'
|
25
|
+
spec.add_dependency 'tty-pager', '~> 0.5.0'
|
24
26
|
spec.add_dependency 'tty-platform', '~> 0.1.0'
|
25
|
-
spec.add_dependency 'tty-progressbar', '~> 0.
|
26
|
-
spec.add_dependency 'tty-prompt', '~> 0.
|
27
|
+
spec.add_dependency 'tty-progressbar', '~> 0.10.0'
|
28
|
+
spec.add_dependency 'tty-prompt', '~> 0.10.0'
|
27
29
|
spec.add_dependency 'tty-screen', '~> 0.5.0'
|
28
|
-
spec.add_dependency 'tty-spinner', '~> 0.
|
29
|
-
spec.add_dependency 'tty-table', '~> 0.
|
30
|
-
spec.add_dependency 'tty-which', '~> 0.
|
30
|
+
spec.add_dependency 'tty-spinner', '~> 0.4.0'
|
31
|
+
spec.add_dependency 'tty-table', '~> 0.7.0'
|
32
|
+
spec.add_dependency 'tty-which', '~> 0.2.0'
|
31
33
|
spec.add_dependency 'equatable', '~> 0.5.0'
|
32
|
-
spec.add_dependency 'pastel', '~> 0.
|
34
|
+
spec.add_dependency 'pastel', '~> 0.7.0'
|
33
35
|
|
34
36
|
spec.add_development_dependency 'bundler', '>= 1.5.0', '< 2.0'
|
35
37
|
spec.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,229 +1,257 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Murach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tty-color
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tty-cursor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: tty-command
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.3.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.3.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: tty-editor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: 0.1.0
|
48
62
|
type: :runtime
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - ~>
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: 0.1.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: tty-file
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.2.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.2.0
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: tty-pager
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
|
-
- - ~>
|
87
|
+
- - "~>"
|
60
88
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
89
|
+
version: 0.5.0
|
62
90
|
type: :runtime
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
66
|
-
- - ~>
|
94
|
+
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
96
|
+
version: 0.5.0
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: tty-platform
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
|
-
- - ~>
|
101
|
+
- - "~>"
|
74
102
|
- !ruby/object:Gem::Version
|
75
103
|
version: 0.1.0
|
76
104
|
type: :runtime
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
80
|
-
- - ~>
|
108
|
+
- - "~>"
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: 0.1.0
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: tty-progressbar
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
|
-
- - ~>
|
115
|
+
- - "~>"
|
88
116
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
117
|
+
version: 0.10.0
|
90
118
|
type: :runtime
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
93
121
|
requirements:
|
94
|
-
- - ~>
|
122
|
+
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
124
|
+
version: 0.10.0
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: tty-prompt
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
|
-
- - ~>
|
129
|
+
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
131
|
+
version: 0.10.0
|
104
132
|
type: :runtime
|
105
133
|
prerelease: false
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
107
135
|
requirements:
|
108
|
-
- - ~>
|
136
|
+
- - "~>"
|
109
137
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
138
|
+
version: 0.10.0
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
140
|
name: tty-screen
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
|
-
- - ~>
|
143
|
+
- - "~>"
|
116
144
|
- !ruby/object:Gem::Version
|
117
145
|
version: 0.5.0
|
118
146
|
type: :runtime
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
|
-
- - ~>
|
150
|
+
- - "~>"
|
123
151
|
- !ruby/object:Gem::Version
|
124
152
|
version: 0.5.0
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: tty-spinner
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
|
-
- - ~>
|
157
|
+
- - "~>"
|
130
158
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
159
|
+
version: 0.4.0
|
132
160
|
type: :runtime
|
133
161
|
prerelease: false
|
134
162
|
version_requirements: !ruby/object:Gem::Requirement
|
135
163
|
requirements:
|
136
|
-
- - ~>
|
164
|
+
- - "~>"
|
137
165
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.
|
166
|
+
version: 0.4.0
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
168
|
name: tty-table
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
142
170
|
requirements:
|
143
|
-
- - ~>
|
171
|
+
- - "~>"
|
144
172
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
173
|
+
version: 0.7.0
|
146
174
|
type: :runtime
|
147
175
|
prerelease: false
|
148
176
|
version_requirements: !ruby/object:Gem::Requirement
|
149
177
|
requirements:
|
150
|
-
- - ~>
|
178
|
+
- - "~>"
|
151
179
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
180
|
+
version: 0.7.0
|
153
181
|
- !ruby/object:Gem::Dependency
|
154
182
|
name: tty-which
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
156
184
|
requirements:
|
157
|
-
- - ~>
|
185
|
+
- - "~>"
|
158
186
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
187
|
+
version: 0.2.0
|
160
188
|
type: :runtime
|
161
189
|
prerelease: false
|
162
190
|
version_requirements: !ruby/object:Gem::Requirement
|
163
191
|
requirements:
|
164
|
-
- - ~>
|
192
|
+
- - "~>"
|
165
193
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
194
|
+
version: 0.2.0
|
167
195
|
- !ruby/object:Gem::Dependency
|
168
196
|
name: equatable
|
169
197
|
requirement: !ruby/object:Gem::Requirement
|
170
198
|
requirements:
|
171
|
-
- - ~>
|
199
|
+
- - "~>"
|
172
200
|
- !ruby/object:Gem::Version
|
173
201
|
version: 0.5.0
|
174
202
|
type: :runtime
|
175
203
|
prerelease: false
|
176
204
|
version_requirements: !ruby/object:Gem::Requirement
|
177
205
|
requirements:
|
178
|
-
- - ~>
|
206
|
+
- - "~>"
|
179
207
|
- !ruby/object:Gem::Version
|
180
208
|
version: 0.5.0
|
181
209
|
- !ruby/object:Gem::Dependency
|
182
210
|
name: pastel
|
183
211
|
requirement: !ruby/object:Gem::Requirement
|
184
212
|
requirements:
|
185
|
-
- - ~>
|
213
|
+
- - "~>"
|
186
214
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
215
|
+
version: 0.7.0
|
188
216
|
type: :runtime
|
189
217
|
prerelease: false
|
190
218
|
version_requirements: !ruby/object:Gem::Requirement
|
191
219
|
requirements:
|
192
|
-
- - ~>
|
220
|
+
- - "~>"
|
193
221
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
222
|
+
version: 0.7.0
|
195
223
|
- !ruby/object:Gem::Dependency
|
196
224
|
name: bundler
|
197
225
|
requirement: !ruby/object:Gem::Requirement
|
198
226
|
requirements:
|
199
|
-
- -
|
227
|
+
- - ">="
|
200
228
|
- !ruby/object:Gem::Version
|
201
229
|
version: 1.5.0
|
202
|
-
- - <
|
230
|
+
- - "<"
|
203
231
|
- !ruby/object:Gem::Version
|
204
232
|
version: '2.0'
|
205
233
|
type: :development
|
206
234
|
prerelease: false
|
207
235
|
version_requirements: !ruby/object:Gem::Requirement
|
208
236
|
requirements:
|
209
|
-
- -
|
237
|
+
- - ">="
|
210
238
|
- !ruby/object:Gem::Version
|
211
239
|
version: 1.5.0
|
212
|
-
- - <
|
240
|
+
- - "<"
|
213
241
|
- !ruby/object:Gem::Version
|
214
242
|
version: '2.0'
|
215
243
|
- !ruby/object:Gem::Dependency
|
216
244
|
name: rake
|
217
245
|
requirement: !ruby/object:Gem::Requirement
|
218
246
|
requirements:
|
219
|
-
- -
|
247
|
+
- - ">="
|
220
248
|
- !ruby/object:Gem::Version
|
221
249
|
version: '0'
|
222
250
|
type: :development
|
223
251
|
prerelease: false
|
224
252
|
version_requirements: !ruby/object:Gem::Requirement
|
225
253
|
requirements:
|
226
|
-
- -
|
254
|
+
- - ">="
|
227
255
|
- !ruby/object:Gem::Version
|
228
256
|
version: '0'
|
229
257
|
description: A toolbox for developing beautiful command line clients.
|
@@ -233,49 +261,29 @@ executables: []
|
|
233
261
|
extensions: []
|
234
262
|
extra_rdoc_files: []
|
235
263
|
files:
|
236
|
-
- .gitignore
|
237
|
-
- .rspec
|
238
|
-
- .travis.yml
|
239
|
-
- .yardopts
|
264
|
+
- ".gitignore"
|
265
|
+
- ".rspec"
|
266
|
+
- ".travis.yml"
|
267
|
+
- ".yardopts"
|
240
268
|
- CHANGELOG.md
|
269
|
+
- CODE_OF_CONDUCT.md
|
241
270
|
- Gemfile
|
242
271
|
- LICENSE.txt
|
243
272
|
- README.md
|
244
273
|
- Rakefile
|
274
|
+
- appveyor.yml
|
245
275
|
- images/tty.png
|
246
276
|
- lib/tty.rb
|
247
|
-
- lib/tty/logger.rb
|
248
277
|
- lib/tty/plugins.rb
|
249
278
|
- lib/tty/plugins/plugin.rb
|
250
|
-
- lib/tty/support/coercion.rb
|
251
|
-
- lib/tty/support/delegatable.rb
|
252
|
-
- lib/tty/support/unicode.rb
|
253
|
-
- lib/tty/system.rb
|
254
|
-
- lib/tty/system/editor.rb
|
255
|
-
- lib/tty/terminal.rb
|
256
|
-
- lib/tty/terminal/home.rb
|
257
|
-
- lib/tty/vector.rb
|
258
279
|
- lib/tty/version.rb
|
280
|
+
- spec/fixtures/foo-0.0.1.gemspec
|
259
281
|
- spec/spec_helper.rb
|
260
|
-
- spec/tty/logger/log_spec.rb
|
261
|
-
- spec/tty/logger/new_spec.rb
|
262
|
-
- spec/tty/logger/valid_level_spec.rb
|
263
282
|
- spec/tty/plugins/find_spec.rb
|
264
283
|
- spec/tty/plugins/load_spec.rb
|
265
284
|
- spec/tty/plugins/plugin/load_spec.rb
|
266
285
|
- spec/tty/plugins/plugin/new_spec.rb
|
267
|
-
- spec/tty/support/coercion_spec.rb
|
268
|
-
- spec/tty/support/delegatable_spec.rb
|
269
|
-
- spec/tty/support/fixtures/classes.rb
|
270
|
-
- spec/tty/system/editor/available_spec.rb
|
271
|
-
- spec/tty/system/editor/build_spec.rb
|
272
|
-
- spec/tty/system/editor/command_spec.rb
|
273
|
-
- spec/tty/system/editor/executables_spec.rb
|
274
|
-
- spec/tty/system/editor/invoke_spec.rb
|
275
|
-
- spec/tty/system/editor/open_spec.rb
|
276
|
-
- spec/tty/terminal/home_spec.rb
|
277
286
|
- spec/tty/tty_spec.rb
|
278
|
-
- spec/tty/vector/new_spec.rb
|
279
287
|
- tasks/console.rake
|
280
288
|
- tasks/coverage.rake
|
281
289
|
- tasks/metrics/cane.rake
|
@@ -293,41 +301,28 @@ require_paths:
|
|
293
301
|
- lib
|
294
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
295
303
|
requirements:
|
296
|
-
- -
|
304
|
+
- - ">="
|
297
305
|
- !ruby/object:Gem::Version
|
298
306
|
version: '0'
|
299
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
300
308
|
requirements:
|
301
|
-
- -
|
309
|
+
- - ">="
|
302
310
|
- !ruby/object:Gem::Version
|
303
311
|
version: '0'
|
304
312
|
requirements: []
|
305
313
|
rubyforge_project:
|
306
|
-
rubygems_version: 2.
|
314
|
+
rubygems_version: 2.5.1
|
307
315
|
signing_key:
|
308
316
|
specification_version: 4
|
309
317
|
summary: A toolbox for developing beautiful command line clients. It provides a fluid
|
310
318
|
interface for gathering input from the user, querying system and terminal and displaying
|
311
319
|
information back.
|
312
320
|
test_files:
|
321
|
+
- spec/fixtures/foo-0.0.1.gemspec
|
313
322
|
- spec/spec_helper.rb
|
314
|
-
- spec/tty/logger/log_spec.rb
|
315
|
-
- spec/tty/logger/new_spec.rb
|
316
|
-
- spec/tty/logger/valid_level_spec.rb
|
317
323
|
- spec/tty/plugins/find_spec.rb
|
318
324
|
- spec/tty/plugins/load_spec.rb
|
319
325
|
- spec/tty/plugins/plugin/load_spec.rb
|
320
326
|
- spec/tty/plugins/plugin/new_spec.rb
|
321
|
-
- spec/tty/support/coercion_spec.rb
|
322
|
-
- spec/tty/support/delegatable_spec.rb
|
323
|
-
- spec/tty/support/fixtures/classes.rb
|
324
|
-
- spec/tty/system/editor/available_spec.rb
|
325
|
-
- spec/tty/system/editor/build_spec.rb
|
326
|
-
- spec/tty/system/editor/command_spec.rb
|
327
|
-
- spec/tty/system/editor/executables_spec.rb
|
328
|
-
- spec/tty/system/editor/invoke_spec.rb
|
329
|
-
- spec/tty/system/editor/open_spec.rb
|
330
|
-
- spec/tty/terminal/home_spec.rb
|
331
327
|
- spec/tty/tty_spec.rb
|
332
|
-
- spec/tty/vector/new_spec.rb
|
333
328
|
has_rdoc:
|
data/lib/tty/logger.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module TTY
|
4
|
-
# A class providing logging system
|
5
|
-
class Logger
|
6
|
-
include Equatable
|
7
|
-
|
8
|
-
ALL = 0
|
9
|
-
INFO = 1
|
10
|
-
DEBUG = 2
|
11
|
-
WARN = 3
|
12
|
-
ERROR = 4
|
13
|
-
FATAL = 5
|
14
|
-
OFF = 6
|
15
|
-
|
16
|
-
MAX_LEVELS = 7
|
17
|
-
|
18
|
-
attr_reader :namespace
|
19
|
-
|
20
|
-
attr_reader :level
|
21
|
-
|
22
|
-
attr_reader :output
|
23
|
-
|
24
|
-
attr_reader :timestamp_format
|
25
|
-
|
26
|
-
# Initialize a Logger
|
27
|
-
#
|
28
|
-
# @param [String] name
|
29
|
-
#
|
30
|
-
# @param [Hash] options
|
31
|
-
#
|
32
|
-
# @option options [String] :output
|
33
|
-
#
|
34
|
-
# @api public
|
35
|
-
def initialize(options = {})
|
36
|
-
@namespace = options.fetch(:namespace) do
|
37
|
-
fail ArgumentError, 'Logger must have namespace', caller
|
38
|
-
end
|
39
|
-
@output = options.fetch(:output) { $stderr }
|
40
|
-
@level = options.fetch(:level) { ALL }
|
41
|
-
@timestamp_format = options.fetch(:timestamp_format) { '%Y-%m-%d %T' }
|
42
|
-
end
|
43
|
-
|
44
|
-
def level=(level)
|
45
|
-
validate_level(level)
|
46
|
-
@level = level
|
47
|
-
end
|
48
|
-
|
49
|
-
# Create a timestamp
|
50
|
-
#
|
51
|
-
# @return [Time]
|
52
|
-
#
|
53
|
-
# @api public
|
54
|
-
def timestamp
|
55
|
-
Time.now.strftime(timestamp_format)
|
56
|
-
end
|
57
|
-
|
58
|
-
def validate_level(level)
|
59
|
-
return if valid_level?(level)
|
60
|
-
fail ArgumentError, "Log level must be 0..#{MAX_LEVELS}", caller
|
61
|
-
end
|
62
|
-
|
63
|
-
# Verify valid level
|
64
|
-
#
|
65
|
-
# @param [Number] level
|
66
|
-
# the level of this logger
|
67
|
-
#
|
68
|
-
# @return [Boolean]
|
69
|
-
#
|
70
|
-
# @api public
|
71
|
-
def self.valid_level?(level)
|
72
|
-
!level.nil? && level.is_a?(Numeric) && level >= ALL && level <= OFF
|
73
|
-
end
|
74
|
-
|
75
|
-
# Print formatted log to output
|
76
|
-
#
|
77
|
-
# @param [String] message
|
78
|
-
# the message to print to output
|
79
|
-
#
|
80
|
-
# @api public
|
81
|
-
def log(message)
|
82
|
-
output.print timestamp + ' - ' + message
|
83
|
-
end
|
84
|
-
end # Logger
|
85
|
-
end # TTY
|