whirly 0.2.2 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 27c78b557a26c8556df8bed870f97d256d9b13f9
4
- data.tar.gz: 0740cc05c8e08ec9fd361dd97f84f3d7d5d0e875
2
+ SHA256:
3
+ metadata.gz: 0d29fbecff7cd421276c1212e4f78775d153dbdaa911c9c0ab4455cc95f7af02
4
+ data.tar.gz: a390b99e94244688c8bc6a283b1f8e407d2031f03fec6be9f9e7bfd0727c0e83
5
5
  SHA512:
6
- metadata.gz: 07acf32c1433564b728587786c9e3ef0610d3b4e740341de46b648d784a7a470b6cf764287760068d38af0861ec2bfd0f324e88ebf3905001d2f110cdda6c1d6
7
- data.tar.gz: 5e69bb87239a176c16f83e16cf154ad984e2b6132256c721d027794154b1ce5feee7d7a77ebfbc23ceace195660044b5693db466ea3e2aee07924a54f4aa7297
6
+ metadata.gz: a5ad854b00b8d9b8e620cbe96b456fbaa98ec116233ca531e840f4204986f9397a32494e2aea1bf73057a97dc7541a6c0f868a6c901441cdf6e19a3602e2ff78
7
+ data.tar.gz: 85171c117d3f3d1d77b1fbfd9af2e864b6e2bd39d55d3673c63d8247e404c36d4f89a7de2acb4aabd250d7c247131f91833651d18c7f9b4ccabd1423b38ae11a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ### 0.3.0
4
+
5
+ - Allow more recent versions of Ruby and unicode-display_width gem
6
+ - Update CLI spinners to 2.6.0
7
+
8
+ ### 0.2.6
9
+
10
+ - Update CLI spinners to 1.1.0 (adds "weather" and "christmas")
11
+
12
+ ### 0.2.5
13
+
14
+ - Update CLI spinners to 1.0.1
15
+
16
+ ### 0.2.4
17
+
18
+ - Fix bug that the Whirly thread will also stop when main thread throws error
19
+ (patch by @monkbroc)
20
+ - New spinner: xberg
21
+
22
+ ### 0.2.3
23
+
24
+ - Fix bug that in some cases whirly output would be shown on non-ttys
25
+ - New spinners: card, cloud, photo, banknote, white_square
26
+
3
27
  ### 0.2.2
4
28
 
5
29
  - More emotions for whirly (the spinner)
data/Gemfile CHANGED
@@ -3,4 +3,6 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'minitest'
6
+ gem 'paint'
7
+ gem 'rake'
6
8
  # gem 'irbtools-more', require: 'irbtools/binding'
data/MIT-LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2016 Jan Lelis, mail@janlelis.de
1
+ Copyright (c) 2016 Jan Lelis, https://janlelis.com
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Whirly 😀 [![[version]](https://badge.fury.io/rb/whirly.svg)](http://badge.fury.io/rb/whirly) [![[travis]](https://travis-ci.org/janlelis/whirly.png)](https://travis-ci.org/janlelis/whirly)
1
+ # Whirly 😀 [![[version]](https://badge.fury.io/rb/whirly.svg)](https://badge.fury.io/rb/whirly) [<img src="https://github.com/janlelis/whirly/workflows/Test/badge.svg" />](https://github.com/janlelis/whirly/actions/workflows/test.yml)
2
2
 
3
- A simple, colorful and customizable terminal spinner library for Ruby. It comes with 18 custom spinners and also includes those from the [cli-spinners](https://github.com/sindresorhus/cli-spinners) project.
3
+ A simple, colorful and customizable terminal spinner library for Ruby. It comes with 24 custom spinners and also includes those from the [cli-spinners](https://github.com/sindresorhus/cli-spinners) project.
4
4
 
5
5
  ## Demonstration
6
6
 
@@ -12,7 +12,7 @@ A simple, colorful and customizable terminal spinner library for Ruby. It comes
12
12
 
13
13
  ### Bundled Spinners from CLI Spinners
14
14
 
15
- ![](https://raw.githubusercontent.com/sindresorhus/cli-spinners/master/screenshot.gif)
15
+ ![](https://raw.githubusercontent.com/sindresorhus/cli-spinners/main/screenshot.gif)
16
16
 
17
17
  [Play on asciinema](https://asciinema.org/a/9mlcoussb137m32swwuqtb2p1?size=big)
18
18
 
@@ -60,12 +60,12 @@ Whirly.stop
60
60
  The `start` method takes a lot of options, like which spinner to use or an initial status. See further below for the full description of available options.
61
61
 
62
62
  ```ruby
63
- Whirly.start spinner: "pong", use_color: false, status: "The Game of Pong" do
63
+ Whirly.start spinner: "pong", color: false, status: "The Game of Pong" do
64
64
  sleep 10
65
65
  end
66
66
  ```
67
67
 
68
- Also see the [examples directory](https://github.com/janlelis/whirly/tree/master/examples) for example scripts.
68
+ Also see the [examples directory](https://github.com/janlelis/whirly/tree/main/examples) for example scripts.
69
69
 
70
70
  ### Configuring Whirly
71
71
 
@@ -99,7 +99,7 @@ end
99
99
 
100
100
  ### Included Spinners
101
101
 
102
- See [`data/whirly-static-spinnes.json`](https://github.com/janlelis/whirly/blob/master/data/whirly-static-spinners.json), [`lib/whirly/spinners/whirly.rb`](https://github.com/janlelis/whirly/blob/master/lib/whirly/spinners/whirly.rb) and [cli-spinners](https://github.com/sindresorhus/cli-spinners). You can get a demonstration of all bundled spinners by running the [`examples/all_spinners.rb`](https://github.com/janlelis/whirly/blob/master/examples/all_spinners.rb) script.
102
+ See [`data/whirly-static-spinnes.json`](https://github.com/janlelis/whirly/blob/main/data/whirly-static-spinners.json), [`lib/whirly/spinners/whirly.rb`](https://github.com/janlelis/whirly/blob/main/lib/whirly/spinners/whirly.rb) and [cli-spinners](https://github.com/sindresorhus/cli-spinners). You can get a demonstration of all bundled spinners by running the [`examples/all_spinners.rb`](https://github.com/janlelis/whirly/blob/main/examples/all_spinners.rb) script.
103
103
 
104
104
  ## All `Whirly.start` / `Whirly.configure` Configuration Options
105
105
 
@@ -212,7 +212,7 @@ Whirly comes with spinners from different sources. This options defines which so
212
212
 
213
213
  *Default:* `$stdout`
214
214
 
215
- You can pass in an [IO](https://ruby-doc.org/core-2.3.1/IO.html)-like object, if you want to display *Whirly* on an other stream than `$stdout`.
215
+ You can pass in an [IO](https://ruby-doc.org/core/IO.html)-like object, if you want to display *Whirly* on an other stream than `$stdout`.
216
216
 
217
217
  ## Full Spinner Hash Format
218
218
 
@@ -220,7 +220,7 @@ A full spinner is defined by a hash which can have the following key-value pairs
220
220
 
221
221
  ### `"frames"`
222
222
 
223
- An [Array](https://ruby-doc.org/core-2.3.1/Array.html) or [Enumerable](https://ruby-doc.org/core-2.3.1/Enumerable.html) of strings that will be used as the spinner icon.
223
+ An [Array](https://ruby-doc.org/core/Array.html) or [Enumerable](https://ruby-doc.org/core/Enumerable.html) of strings that will be used as the spinner icon.
224
224
 
225
225
  ### `"proc"`
226
226
 
@@ -239,7 +239,7 @@ The order in which frames should be played. It can be one of the following:
239
239
  - `"swing"`: Cycle through all frames in normal order, and then in reverse order, but only play first and last frame once each round
240
240
  - `"random"`: Play random frames
241
241
 
242
- Please note: While `"linear"` also works with frames that are just an [Enumerable](https://ruby-doc.org/core-2.3.1/Enumerable.html), all other frame modes require the object to be representable as an [Array](https://ruby-doc.org/core-2.3.1/Array.html).
242
+ Please note: While `"linear"` also works with frames that are just an [Enumerable](https://ruby-doc.org/core/Enumerable.html), all other frame modes require the object to be representable as an [Array](https://ruby-doc.org/core/Array.html).
243
243
 
244
244
  ### `"stop"`
245
245
 
@@ -250,9 +250,9 @@ A frame to be used to end the spinner icon animation.
250
250
  - Interval is milliseconds, but don't rely on exact timing
251
251
  - Will not do anything if stream is not a real console (or `non_tty: true` is passed)
252
252
  - Colors not working? Be sure to include the [paint](https://github.com/janlelis/paint/) gem in your Gemfile
253
- - Don't set very short intervals (or it might affect performance substantly)
253
+ - Don't set very short intervals (or it might affect performance substantially)
254
254
 
255
255
  ## MIT License
256
256
 
257
- - Copyright (C) 2016 Jan Lelis <http://janlelis.com>. Released under the MIT license.
257
+ - Copyright (C) 2016 Jan Lelis <https://janlelis.com>. Released under the MIT license.
258
258
  - Contains data from cli-spinners: MIT License, Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
data/Rakefile CHANGED
@@ -35,7 +35,7 @@ end
35
35
 
36
36
  desc "#{gemspec.name} | Spec"
37
37
  task :spec do
38
- sh "for file in spec/*.rb; do ruby $file; done"
38
+ ruby "spec/whirly_spec.rb"
39
39
  end
40
40
  task default: :spec
41
41
 
@@ -274,6 +274,267 @@
274
274
  "⠀⡀"
275
275
  ]
276
276
  },
277
+ "dots8Bit": {
278
+ "interval": 80,
279
+ "frames": [
280
+ "⠀",
281
+ "⠁",
282
+ "⠂",
283
+ "⠃",
284
+ "⠄",
285
+ "⠅",
286
+ "⠆",
287
+ "⠇",
288
+ "⡀",
289
+ "⡁",
290
+ "⡂",
291
+ "⡃",
292
+ "⡄",
293
+ "⡅",
294
+ "⡆",
295
+ "⡇",
296
+ "⠈",
297
+ "⠉",
298
+ "⠊",
299
+ "⠋",
300
+ "⠌",
301
+ "⠍",
302
+ "⠎",
303
+ "⠏",
304
+ "⡈",
305
+ "⡉",
306
+ "⡊",
307
+ "⡋",
308
+ "⡌",
309
+ "⡍",
310
+ "⡎",
311
+ "⡏",
312
+ "⠐",
313
+ "⠑",
314
+ "⠒",
315
+ "⠓",
316
+ "⠔",
317
+ "⠕",
318
+ "⠖",
319
+ "⠗",
320
+ "⡐",
321
+ "⡑",
322
+ "⡒",
323
+ "⡓",
324
+ "⡔",
325
+ "⡕",
326
+ "⡖",
327
+ "⡗",
328
+ "⠘",
329
+ "⠙",
330
+ "⠚",
331
+ "⠛",
332
+ "⠜",
333
+ "⠝",
334
+ "⠞",
335
+ "⠟",
336
+ "⡘",
337
+ "⡙",
338
+ "⡚",
339
+ "⡛",
340
+ "⡜",
341
+ "⡝",
342
+ "⡞",
343
+ "⡟",
344
+ "⠠",
345
+ "⠡",
346
+ "⠢",
347
+ "⠣",
348
+ "⠤",
349
+ "⠥",
350
+ "⠦",
351
+ "⠧",
352
+ "⡠",
353
+ "⡡",
354
+ "⡢",
355
+ "⡣",
356
+ "⡤",
357
+ "⡥",
358
+ "⡦",
359
+ "⡧",
360
+ "⠨",
361
+ "⠩",
362
+ "⠪",
363
+ "⠫",
364
+ "⠬",
365
+ "⠭",
366
+ "⠮",
367
+ "⠯",
368
+ "⡨",
369
+ "⡩",
370
+ "⡪",
371
+ "⡫",
372
+ "⡬",
373
+ "⡭",
374
+ "⡮",
375
+ "⡯",
376
+ "⠰",
377
+ "⠱",
378
+ "⠲",
379
+ "⠳",
380
+ "⠴",
381
+ "⠵",
382
+ "⠶",
383
+ "⠷",
384
+ "⡰",
385
+ "⡱",
386
+ "⡲",
387
+ "⡳",
388
+ "⡴",
389
+ "⡵",
390
+ "⡶",
391
+ "⡷",
392
+ "⠸",
393
+ "⠹",
394
+ "⠺",
395
+ "⠻",
396
+ "⠼",
397
+ "⠽",
398
+ "⠾",
399
+ "⠿",
400
+ "⡸",
401
+ "⡹",
402
+ "⡺",
403
+ "⡻",
404
+ "⡼",
405
+ "⡽",
406
+ "⡾",
407
+ "⡿",
408
+ "⢀",
409
+ "⢁",
410
+ "⢂",
411
+ "⢃",
412
+ "⢄",
413
+ "⢅",
414
+ "⢆",
415
+ "⢇",
416
+ "⣀",
417
+ "⣁",
418
+ "⣂",
419
+ "⣃",
420
+ "⣄",
421
+ "⣅",
422
+ "⣆",
423
+ "⣇",
424
+ "⢈",
425
+ "⢉",
426
+ "⢊",
427
+ "⢋",
428
+ "⢌",
429
+ "⢍",
430
+ "⢎",
431
+ "⢏",
432
+ "⣈",
433
+ "⣉",
434
+ "⣊",
435
+ "⣋",
436
+ "⣌",
437
+ "⣍",
438
+ "⣎",
439
+ "⣏",
440
+ "⢐",
441
+ "⢑",
442
+ "⢒",
443
+ "⢓",
444
+ "⢔",
445
+ "⢕",
446
+ "⢖",
447
+ "⢗",
448
+ "⣐",
449
+ "⣑",
450
+ "⣒",
451
+ "⣓",
452
+ "⣔",
453
+ "⣕",
454
+ "⣖",
455
+ "⣗",
456
+ "⢘",
457
+ "⢙",
458
+ "⢚",
459
+ "⢛",
460
+ "⢜",
461
+ "⢝",
462
+ "⢞",
463
+ "⢟",
464
+ "⣘",
465
+ "⣙",
466
+ "⣚",
467
+ "⣛",
468
+ "⣜",
469
+ "⣝",
470
+ "⣞",
471
+ "⣟",
472
+ "⢠",
473
+ "⢡",
474
+ "⢢",
475
+ "⢣",
476
+ "⢤",
477
+ "⢥",
478
+ "⢦",
479
+ "⢧",
480
+ "⣠",
481
+ "⣡",
482
+ "⣢",
483
+ "⣣",
484
+ "⣤",
485
+ "⣥",
486
+ "⣦",
487
+ "⣧",
488
+ "⢨",
489
+ "⢩",
490
+ "⢪",
491
+ "⢫",
492
+ "⢬",
493
+ "⢭",
494
+ "⢮",
495
+ "⢯",
496
+ "⣨",
497
+ "⣩",
498
+ "⣪",
499
+ "⣫",
500
+ "⣬",
501
+ "⣭",
502
+ "⣮",
503
+ "⣯",
504
+ "⢰",
505
+ "⢱",
506
+ "⢲",
507
+ "⢳",
508
+ "⢴",
509
+ "⢵",
510
+ "⢶",
511
+ "⢷",
512
+ "⣰",
513
+ "⣱",
514
+ "⣲",
515
+ "⣳",
516
+ "⣴",
517
+ "⣵",
518
+ "⣶",
519
+ "⣷",
520
+ "⢸",
521
+ "⢹",
522
+ "⢺",
523
+ "⢻",
524
+ "⢼",
525
+ "⢽",
526
+ "⢾",
527
+ "⢿",
528
+ "⣸",
529
+ "⣹",
530
+ "⣺",
531
+ "⣻",
532
+ "⣼",
533
+ "⣽",
534
+ "⣾",
535
+ "⣿"
536
+ ]
537
+ },
277
538
  "line": {
278
539
  "interval": 130,
279
540
  "frames": [
@@ -659,6 +920,13 @@
659
920
  "bouncingBar": {
660
921
  "interval": 80,
661
922
  "frames": [
923
+ "[ ]",
924
+ "[= ]",
925
+ "[== ]",
926
+ "[=== ]",
927
+ "[ ===]",
928
+ "[ ==]",
929
+ "[ =]",
662
930
  "[ ]",
663
931
  "[ =]",
664
932
  "[ ==]",
@@ -713,6 +981,7 @@
713
981
  "clock": {
714
982
  "interval": 100,
715
983
  "frames": [
984
+ "🕛 ",
716
985
  "🕐 ",
717
986
  "🕑 ",
718
987
  "🕒 ",
@@ -734,6 +1003,103 @@
734
1003
  "🌏 "
735
1004
  ]
736
1005
  },
1006
+ "material": {
1007
+ "interval": 17,
1008
+ "frames": [
1009
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1010
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1011
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1012
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1013
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1014
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1015
+ "███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
1016
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
1017
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1018
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1019
+ "██████████▁▁▁▁▁▁▁▁▁▁",
1020
+ "███████████▁▁▁▁▁▁▁▁▁",
1021
+ "█████████████▁▁▁▁▁▁▁",
1022
+ "██████████████▁▁▁▁▁▁",
1023
+ "██████████████▁▁▁▁▁▁",
1024
+ "▁██████████████▁▁▁▁▁",
1025
+ "▁██████████████▁▁▁▁▁",
1026
+ "▁██████████████▁▁▁▁▁",
1027
+ "▁▁██████████████▁▁▁▁",
1028
+ "▁▁▁██████████████▁▁▁",
1029
+ "▁▁▁▁█████████████▁▁▁",
1030
+ "▁▁▁▁██████████████▁▁",
1031
+ "▁▁▁▁██████████████▁▁",
1032
+ "▁▁▁▁▁██████████████▁",
1033
+ "▁▁▁▁▁██████████████▁",
1034
+ "▁▁▁▁▁██████████████▁",
1035
+ "▁▁▁▁▁▁██████████████",
1036
+ "▁▁▁▁▁▁██████████████",
1037
+ "▁▁▁▁▁▁▁█████████████",
1038
+ "▁▁▁▁▁▁▁█████████████",
1039
+ "▁▁▁▁▁▁▁▁████████████",
1040
+ "▁▁▁▁▁▁▁▁████████████",
1041
+ "▁▁▁▁▁▁▁▁▁███████████",
1042
+ "▁▁▁▁▁▁▁▁▁███████████",
1043
+ "▁▁▁▁▁▁▁▁▁▁██████████",
1044
+ "▁▁▁▁▁▁▁▁▁▁██████████",
1045
+ "▁▁▁▁▁▁▁▁▁▁▁▁████████",
1046
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1047
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
1048
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1049
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1050
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1051
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1052
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1053
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1054
+ "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1055
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1056
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1057
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1058
+ "████████▁▁▁▁▁▁▁▁▁▁▁▁",
1059
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1060
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1061
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1062
+ "█████████▁▁▁▁▁▁▁▁▁▁▁",
1063
+ "███████████▁▁▁▁▁▁▁▁▁",
1064
+ "████████████▁▁▁▁▁▁▁▁",
1065
+ "████████████▁▁▁▁▁▁▁▁",
1066
+ "██████████████▁▁▁▁▁▁",
1067
+ "██████████████▁▁▁▁▁▁",
1068
+ "▁██████████████▁▁▁▁▁",
1069
+ "▁██████████████▁▁▁▁▁",
1070
+ "▁▁▁█████████████▁▁▁▁",
1071
+ "▁▁▁▁▁████████████▁▁▁",
1072
+ "▁▁▁▁▁████████████▁▁▁",
1073
+ "▁▁▁▁▁▁███████████▁▁▁",
1074
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
1075
+ "▁▁▁▁▁▁▁▁█████████▁▁▁",
1076
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
1077
+ "▁▁▁▁▁▁▁▁▁█████████▁▁",
1078
+ "▁▁▁▁▁▁▁▁▁▁█████████▁",
1079
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
1080
+ "▁▁▁▁▁▁▁▁▁▁▁████████▁",
1081
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
1082
+ "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
1083
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1084
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
1085
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
1086
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1087
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1088
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
1089
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1090
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
1091
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1092
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1093
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
1094
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1095
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1096
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
1097
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1098
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1099
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1100
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"
1101
+ ]
1102
+ },
737
1103
  "moon": {
738
1104
  "interval": 80,
739
1105
  "frames": [
@@ -819,5 +1185,231 @@
819
1185
  "▐_/|___________▌",
820
1186
  "▐/|____________▌"
821
1187
  ]
1188
+ },
1189
+ "dqpb": {
1190
+ "interval": 100,
1191
+ "frames": [
1192
+ "d",
1193
+ "q",
1194
+ "p",
1195
+ "b"
1196
+ ]
1197
+ },
1198
+ "weather": {
1199
+ "interval": 100,
1200
+ "frames": [
1201
+ "☀️ ",
1202
+ "☀️ ",
1203
+ "☀️ ",
1204
+ "🌤 ",
1205
+ "⛅️ ",
1206
+ "🌥 ",
1207
+ "☁️ ",
1208
+ "🌧 ",
1209
+ "🌨 ",
1210
+ "🌧 ",
1211
+ "🌨 ",
1212
+ "🌧 ",
1213
+ "🌨 ",
1214
+ "⛈ ",
1215
+ "🌨 ",
1216
+ "🌧 ",
1217
+ "🌨 ",
1218
+ "☁️ ",
1219
+ "🌥 ",
1220
+ "⛅️ ",
1221
+ "🌤 ",
1222
+ "☀️ ",
1223
+ "☀️ "
1224
+ ]
1225
+ },
1226
+ "christmas": {
1227
+ "interval": 400,
1228
+ "frames": [
1229
+ "🌲",
1230
+ "🎄"
1231
+ ]
1232
+ },
1233
+ "grenade": {
1234
+ "interval": 80,
1235
+ "frames": [
1236
+ "، ",
1237
+ "′ ",
1238
+ " ´ ",
1239
+ " ‾ ",
1240
+ " ⸌",
1241
+ " ⸊",
1242
+ " |",
1243
+ " ⁎",
1244
+ " ⁕",
1245
+ " ෴ ",
1246
+ " ⁓",
1247
+ " ",
1248
+ " ",
1249
+ " "
1250
+ ]
1251
+ },
1252
+ "point": {
1253
+ "interval": 125,
1254
+ "frames": [
1255
+ "∙∙∙",
1256
+ "●∙∙",
1257
+ "∙●∙",
1258
+ "∙∙●",
1259
+ "∙∙∙"
1260
+ ]
1261
+ },
1262
+ "layer": {
1263
+ "interval": 150,
1264
+ "frames": [
1265
+ "-",
1266
+ "=",
1267
+ "≡"
1268
+ ]
1269
+ },
1270
+ "betaWave": {
1271
+ "interval": 80,
1272
+ "frames": [
1273
+ "ρββββββ",
1274
+ "βρβββββ",
1275
+ "ββρββββ",
1276
+ "βββρβββ",
1277
+ "ββββρββ",
1278
+ "βββββρβ",
1279
+ "ββββββρ"
1280
+ ]
1281
+ },
1282
+ "fingerDance": {
1283
+ "interval": 160,
1284
+ "frames": [
1285
+ "🤘 ",
1286
+ "🤟 ",
1287
+ "🖖 ",
1288
+ "✋ ",
1289
+ "🤚 ",
1290
+ "👆 "
1291
+ ]
1292
+ },
1293
+ "fistBump": {
1294
+ "interval": 80,
1295
+ "frames": [
1296
+ "🤜\u3000\u3000\u3000\u3000🤛 ",
1297
+ "🤜\u3000\u3000\u3000\u3000🤛 ",
1298
+ "🤜\u3000\u3000\u3000\u3000🤛 ",
1299
+ "\u3000🤜\u3000\u3000🤛\u3000 ",
1300
+ "\u3000\u3000🤜🤛\u3000\u3000 ",
1301
+ "\u3000🤜✨🤛\u3000\u3000 ",
1302
+ "🤜\u3000✨\u3000🤛\u3000 "
1303
+ ]
1304
+ },
1305
+ "soccerHeader": {
1306
+ "interval": 80,
1307
+ "frames": [
1308
+ " 🧑⚽️ 🧑 ",
1309
+ "🧑 ⚽️ 🧑 ",
1310
+ "🧑 ⚽️ 🧑 ",
1311
+ "🧑 ⚽️ 🧑 ",
1312
+ "🧑 ⚽️ 🧑 ",
1313
+ "🧑 ⚽️ 🧑 ",
1314
+ "🧑 ⚽️🧑 ",
1315
+ "🧑 ⚽️ 🧑 ",
1316
+ "🧑 ⚽️ 🧑 ",
1317
+ "🧑 ⚽️ 🧑 ",
1318
+ "🧑 ⚽️ 🧑 ",
1319
+ "🧑 ⚽️ 🧑 "
1320
+ ]
1321
+ },
1322
+ "mindblown": {
1323
+ "interval": 160,
1324
+ "frames": [
1325
+ "😐 ",
1326
+ "😐 ",
1327
+ "😮 ",
1328
+ "😮 ",
1329
+ "😦 ",
1330
+ "😦 ",
1331
+ "😧 ",
1332
+ "😧 ",
1333
+ "🤯 ",
1334
+ "💥 ",
1335
+ "✨ ",
1336
+ "\u3000 ",
1337
+ "\u3000 ",
1338
+ "\u3000 "
1339
+ ]
1340
+ },
1341
+ "speaker": {
1342
+ "interval": 160,
1343
+ "frames": [
1344
+ "🔈 ",
1345
+ "🔉 ",
1346
+ "🔊 ",
1347
+ "🔉 "
1348
+ ]
1349
+ },
1350
+ "orangePulse": {
1351
+ "interval": 100,
1352
+ "frames": [
1353
+ "🔸 ",
1354
+ "🔶 ",
1355
+ "🟠 ",
1356
+ "🟠 ",
1357
+ "🔶 "
1358
+ ]
1359
+ },
1360
+ "bluePulse": {
1361
+ "interval": 100,
1362
+ "frames": [
1363
+ "🔹 ",
1364
+ "🔷 ",
1365
+ "🔵 ",
1366
+ "🔵 ",
1367
+ "🔷 "
1368
+ ]
1369
+ },
1370
+ "orangeBluePulse": {
1371
+ "interval": 100,
1372
+ "frames": [
1373
+ "🔸 ",
1374
+ "🔶 ",
1375
+ "🟠 ",
1376
+ "🟠 ",
1377
+ "🔶 ",
1378
+ "🔹 ",
1379
+ "🔷 ",
1380
+ "🔵 ",
1381
+ "🔵 ",
1382
+ "🔷 "
1383
+ ]
1384
+ },
1385
+ "timeTravel": {
1386
+ "interval": 100,
1387
+ "frames": [
1388
+ "🕛 ",
1389
+ "🕚 ",
1390
+ "🕙 ",
1391
+ "🕘 ",
1392
+ "🕗 ",
1393
+ "🕖 ",
1394
+ "🕕 ",
1395
+ "🕔 ",
1396
+ "🕓 ",
1397
+ "🕒 ",
1398
+ "🕑 ",
1399
+ "🕐 "
1400
+ ]
1401
+ },
1402
+ "aesthetic": {
1403
+ "interval": 80,
1404
+ "frames": [
1405
+ "▰▱▱▱▱▱▱",
1406
+ "▰▰▱▱▱▱▱",
1407
+ "▰▰▰▱▱▱▱",
1408
+ "▰▰▰▰▱▱▱",
1409
+ "▰▰▰▰▰▱▱",
1410
+ "▰▰▰▰▰▰▱",
1411
+ "▰▰▰▰▰▰▰",
1412
+ "▰▱▱▱▱▱▱"
1413
+ ]
822
1414
  }
823
1415
  }
@@ -171,5 +171,104 @@
171
171
  "😿",
172
172
  "🙀"
173
173
  ]
174
+ },
175
+ "card": {
176
+ "interval": 90,
177
+ "stop": "🂠",
178
+ "frames": [
179
+ "🃁", "🃂", "🃃", "🃄", "🃅", "🃆", "🃇", "🃈", "🃉", "🃊", "🃋", "🃌", "🃍", "🃎",
180
+ "🂱", "🂲", "🂳", "🂴", "🂵", "🂶", "🂷", "🂸", "🂹", "🂺", "🂻", "🂼", "🂽", "🂾",
181
+ "🂡", "🂢", "🂣", "🂤", "🂥", "🂦", "🂧", "🂨", "🂩", "🂪", "🂫", "🂬", "🂭", "🂮",
182
+ "🃑", "🃒", "🃓", "🃔", "🃕", "🃖", "🃗", "🃘", "🃙", "🃚", "🃛", "🃜", "🃝", "🃞"
183
+ ]
184
+ },
185
+ "cloud": {
186
+ "interval": 140,
187
+ "frames": [
188
+ "🌥",
189
+ "🌦",
190
+ "🌧",
191
+ "🌨",
192
+ "🌩",
193
+ "🌪"
194
+ ]
195
+ },
196
+ "photo": {
197
+ "interval": 200,
198
+ "frames": [
199
+ "📷",
200
+ "📸"
201
+ ]
202
+ },
203
+ "banknote": {
204
+ "interval": 100,
205
+ "frames": [
206
+ "💴",
207
+ "💵",
208
+ "💶",
209
+ "💷"
210
+ ]
211
+ },
212
+ "white_square": {
213
+ "interval": 100,
214
+ "mode": "swing",
215
+ "frames": [
216
+ "🞓",
217
+ "🞒",
218
+ "🞑",
219
+ "🞐",
220
+ "🞏",
221
+ "🞎",
222
+ "🞔"
223
+ ]
224
+ },
225
+ "xberg": {
226
+ "interval": 150,
227
+ "mode": "random",
228
+ "frames": [
229
+ "⨯",
230
+ "⛰",
231
+ "⛰",
232
+ "⛰",
233
+ "⛰",
234
+ "⛰",
235
+ "⛰"
236
+ ]
237
+ },
238
+ "circled_letter": {
239
+ "interval": 120,
240
+ "mode": "random",
241
+ "frames": [
242
+ "Ⓐ", "Ⓑ", "Ⓒ", "Ⓓ", "Ⓔ", "Ⓕ", "Ⓖ", "Ⓗ", "Ⓘ",
243
+ "Ⓙ", "Ⓚ", "Ⓛ", "Ⓜ", "Ⓝ", "Ⓞ", "Ⓟ", "Ⓠ", "Ⓡ",
244
+ "Ⓢ", "Ⓣ", "Ⓤ", "Ⓥ", "Ⓦ", "Ⓧ", "Ⓨ", "Ⓩ"
245
+ ]
246
+ },
247
+ "circled_number": {
248
+ "interval": 120,
249
+ "mode": "random",
250
+ "frames": [
251
+ "①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨"
252
+ ]
253
+ },
254
+ "letter_with_parens": {
255
+ "interval": 150,
256
+ "mode": "random",
257
+ "frames": [
258
+ "🄐", "🄑", "🄒", "🄓", "🄔", "🄕", "🄖", "🄗", "🄘",
259
+ "🄙", "🄚", "🄛", "🄜", "🄝", "🄞", "🄟", "🄠", "🄡",
260
+ "🄢", "🄣", "🄤", "🄥", "🄦", "🄧", "🄨", "🄩"
261
+ ]
262
+ },
263
+ "starlike": {
264
+ "interval": 120,
265
+ "mode": "random",
266
+ "frames": [
267
+ "✩", "✪", "✫", "✬", "✭", "✮", "✯", "✰",
268
+ "✱", "✲", "✳", "✴", "✵", "✶", "✷", "✸",
269
+ "✹", "✺", "✻", "✼", "✽", "✾", "✿", "❀",
270
+ "❁", "❂", "❃", "❄", "❅", "❆", "❇", "❈",
271
+ "❉", "❊"
272
+ ]
174
273
  }
175
274
  }
data/examples/euruko.rb CHANGED
@@ -45,7 +45,7 @@ sleep 5
45
45
  print "\033c"
46
46
  puts Paint["Pong", :underline]
47
47
 
48
- Whirly.start spinner: "pong", use_color: false, status: "Two computers in a game of Pong" do
48
+ Whirly.start spinner: "pong", color: false, status: "Two computers in a game of Pong" do
49
49
  sleep 9
50
50
  end
51
51
 
data/examples/single.rb CHANGED
@@ -3,4 +3,4 @@ require "paint"
3
3
 
4
4
  # Call a single spinner from the command-line
5
5
 
6
- Whirly.start(spinner: $*[0], status: $*[2] || $*[0], use_color: false){ sleep(($*[1] || 10).to_i) }
6
+ Whirly.start(spinner: $*[0], status: $*[2] || $*[0], color: false){ sleep(($*[1] || 10).to_i) }
data/lib/whirly.rb CHANGED
@@ -133,13 +133,6 @@ module Whirly
133
133
  # optionally overwrite configuration on start
134
134
  configure(**options)
135
135
 
136
- # ensure cursor is visible after exit the program (only register for the very first time)
137
- if (!defined?(@at_exit_handler_registered) || !@at_exit_handler_registered) && @options[:hide_cursor]
138
- @at_exit_handler_registered = true
139
- stream = @options[:stream]
140
- at_exit{ stream.print CLI_COMMANDS[:show_cursor] }
141
- end
142
-
143
136
  # only enable once
144
137
  return false if defined?(@enabled) && @enabled
145
138
 
@@ -149,6 +142,13 @@ module Whirly
149
142
  # only do something if we are on a real terminal (or forced)
150
143
  return false unless @options[:stream].tty? || @options[:non_tty]
151
144
 
145
+ # ensure cursor is visible after exit the program (only register for the very first time)
146
+ if (!defined?(@at_exit_handler_registered) || !@at_exit_handler_registered) && @options[:hide_cursor]
147
+ @at_exit_handler_registered = true
148
+ stream = @options[:stream]
149
+ at_exit{ stream.print CLI_COMMANDS[:show_cursor] }
150
+ end
151
+
152
152
  # init color
153
153
  initialize_color if @options[:color]
154
154
 
@@ -167,8 +167,11 @@ module Whirly
167
167
 
168
168
  # idiomatic block syntax support
169
169
  if block_given?
170
- yield
171
- Whirly.stop
170
+ begin
171
+ yield
172
+ ensure
173
+ Whirly.stop
174
+ end
172
175
  end
173
176
 
174
177
  true
@@ -176,12 +179,14 @@ module Whirly
176
179
 
177
180
  def self.stop(stop_frame = nil)
178
181
  return false unless @enabled
182
+ @enabled = false
183
+ return false unless @options[:stream].tty? || @options[:non_tty]
184
+
179
185
  @thread.terminate if @thread
180
186
  render(stop_frame || @stop) if stop_frame || @stop
181
187
  unrender if @options[:remove_after_stop]
182
188
  @options[:stream].puts if @options[:append_newline]
183
189
  @options[:stream].print CLI_COMMANDS[:show_cursor] if @options[:hide_cursor]
184
- @enabled = false
185
190
 
186
191
  true
187
192
  end
@@ -4,13 +4,9 @@ module Whirly
4
4
  module Spinners
5
5
  WHIRLY = {
6
6
  "random_dots" => { "proc" => ->(){ [ 0x2800 + rand(256)].pack("U") }, "interval" => 100 },
7
- "circled_letter" => { "proc" => ->(){ [ 0x24B6 + rand(26) ].pack("U") }, "interval" => 120 },
8
- "circled_number" => { "proc" => ->(){ [ 0x2460 + rand(9) ].pack("U") }, "interval" => 120 },
9
- "starlike" => { "proc" => ->(){ [ 0x2729 + rand(34) ].pack("U") }, "interval" => 120 },
10
7
  "mahjong" => { "proc" => ->(){ [0x1F000 + rand(44)].pack("U") }, "interval" => 200 },
11
8
  "domino" => { "proc" => ->(){ [0x1F030 + rand(50)].pack("U") }, "interval" => 200 },
12
- "vertical_domino" => { "proc" => ->(){ [0x1F062 + rand(50)].pack("U") }, "interval" => 200 },
13
- "letters_with_parens" => { "proc" => ->(){ [0x1F110 + rand(26)].pack("U") }, "interval" => 150 },
9
+ "vertical_domino" => { "proc" => ->(){ [0x1F062 + rand(50)].pack("U") }, "interval" => 200 }
14
10
  }
15
11
  WHIRLY.merge! JSON.load(File.read(File.dirname(__FILE__) + "/../../../data/whirly-static-spinners.json"))
16
12
 
@@ -1,4 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Whirly
2
- VERSION = "0.2.2".freeze
4
+ VERSION = "0.3.0"
3
5
  end
4
-
data/spec/whirly_spec.rb CHANGED
@@ -1,14 +1,15 @@
1
1
  require_relative "../lib/whirly"
2
2
  require "minitest/autorun"
3
+ require "paint"
3
4
  # require "irbtools/binding"
4
5
  require "stringio"
5
6
 
6
7
  def short_sleep
7
- sleep 0.15
8
+ sleep 0.4
8
9
  end
9
10
 
10
11
  def medium_sleep
11
- sleep 0.5
12
+ sleep 0.7
12
13
  end
13
14
 
14
15
  def long_sleep
@@ -169,10 +170,10 @@ describe Whirly do
169
170
  spinner = { "frames" => "A".."H", "mode" => "random", "interval" => 10 }
170
171
 
171
172
  Whirly.start(spinner: spinner)
172
- medium_sleep
173
+ short_sleep
173
174
  Whirly.stop
174
175
 
175
- refute /A.*B.*C.*D.*E.*F.*G.*H/m =~ @capture.string
176
+ refute /\A.*?A.*?B.*?C.*?D.*?E.*?F.*?G.*?H/m =~ @capture.string
176
177
  end
177
178
 
178
179
  it "can be set to reverse" do
@@ -195,6 +196,91 @@ describe Whirly do
195
196
  assert_match /A.*B.*C.*D.*E.*F.*G.*H.*G.*F.*E.*D.*C.*B.*A/m, @capture.string
196
197
  end
197
198
  end
199
+
200
+ describe "Interval" do
201
+ it "spins more often when interval is lower" do
202
+ capture1 = StringIO.new
203
+ Whirly.start(stream: capture1, interval: 100)
204
+ long_sleep
205
+ Whirly.stop
206
+
207
+ capture2 = StringIO.new
208
+ Whirly.start(stream: capture2, interval: 50)
209
+ long_sleep
210
+ Whirly.stop
211
+
212
+ assert capture1.string.size < capture2.string.size
213
+ end
214
+ end
215
+ end
216
+
217
+ describe "Colors" do
218
+ it "will use no color when :color option is falsey" do
219
+ Whirly.start(color: false)
220
+ short_sleep
221
+ Whirly.stop
222
+
223
+ refute /\[38;/ =~ @capture.string
224
+ end
225
+
226
+ it "will use color when :color option is truthy" do
227
+ Whirly.start(color: true)
228
+ short_sleep
229
+ Whirly.stop
230
+
231
+ assert /\[38;/ =~ @capture.string
232
+ end
233
+
234
+ it "defaults :color to true when the paint gem is available" do
235
+ Whirly.reset
236
+ Whirly.configure
237
+ assert Whirly.options[:color]
238
+ end
239
+
240
+ # it "defaults :color to true when the paint gem is not available" do
241
+ # remember_paint = Paint
242
+ # Object.send(:remove_const, :Paint)
243
+ # Whirly.reset
244
+ # Whirly.configure
245
+ # Object.send(:const_set, :Paint, remember_paint)
246
+ # refute Whirly.options[:color]
247
+ # end
248
+
249
+ it "changes the the color" do
250
+ Whirly.start
251
+ long_sleep
252
+ Whirly.stop
253
+
254
+ colors = @capture.string.scan(/\[38;.*?m/).flatten
255
+ assert colors.uniq.size > 1
256
+ end
257
+ end
258
+
259
+ describe "Cursor" do
260
+ it "hides (and later shows) cursor when :hide_cursor => true option is given (default)" do
261
+ Whirly.start(hide_cursor: true)
262
+ short_sleep
263
+ Whirly.stop
264
+
265
+ assert_match /\[?25l.*\[?25h/m, @capture.string
266
+ end
267
+
268
+ it "does not hide cursor when :hide_cursor => false option is given" do
269
+ Whirly.start(hide_cursor: false)
270
+ short_sleep
271
+ Whirly.stop
272
+
273
+ refute /\[?25l.*\[?25h/m =~ @capture.string
274
+ end
275
+ end
276
+
277
+ describe "Spinner Packs" do
278
+ it "can be passed an alternative set of :spinner_packs" do
279
+ assert_raises ArgumentError do
280
+ Whirly.start(spinner_packs: [:cli], spinner: "cat") # whirly is part of :whirly, but not of :cli
281
+ Whirly.stop
282
+ end
283
+ end
198
284
  end
199
285
 
200
286
  describe "Ansi Escape Mode" do
@@ -213,6 +299,34 @@ describe Whirly do
213
299
  end
214
300
  end
215
301
 
302
+ describe "Streams and TTYs" do
303
+ it "will not output anything on non-ttys" do
304
+ Whirly.reset
305
+ @capture = StringIO.new
306
+ Whirly.start(stream: @capture)
307
+ short_sleep
308
+ Whirly.stop
309
+ assert_equal "", @capture.string
310
+ end
311
+
312
+ it "will output something on non-ttys when :non_tty => true option is given" do
313
+ Whirly.reset
314
+ @capture = StringIO.new
315
+ Whirly.start(stream: @capture, non_tty: true)
316
+ short_sleep
317
+ Whirly.stop
318
+ refute_equal "", @capture.string
319
+ end
320
+
321
+ it "can be configured to which stream whirly's output goes" do
322
+ iolike = StringIO.new
323
+ Whirly.start(stream: iolike, non_tty: true)
324
+ short_sleep
325
+ Whirly.stop
326
+ refute_equal "", iolike.string
327
+ end
328
+ end
329
+
216
330
  describe "Positioning" do
217
331
  it "will render spinner 1 line further below (useful for spinning while git cloning)" do
218
332
  Whirly.start(position: "below")
@@ -262,5 +376,18 @@ describe Whirly do
262
376
  refute_predicate Whirly, :enabled?
263
377
  end
264
378
  end
265
- end
266
379
 
380
+ describe "Error Handling" do
381
+ it "stops the spinner, when the main thread threw an exception [gh#3]" do
382
+ begin
383
+ Whirly.start status: "working" do
384
+ short_sleep
385
+ raise 'error!'
386
+ end
387
+ rescue
388
+ end
389
+
390
+ refute_predicate Whirly, :enabled?
391
+ end
392
+ end
393
+ end
data/whirly.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = "Whirly: The friendly terminal spinner"
9
9
  gem.description = "Simple terminal spinner with support for custom spinners. Includes spinners from npm's cli-spinners."
10
10
  gem.authors = ["Jan Lelis"]
11
- gem.email = ["mail@janlelis.de"]
11
+ gem.email = ["hi@ruby.consulting"]
12
12
  gem.homepage = "https://github.com/janlelis/whirly"
13
13
  gem.license = "MIT"
14
14
 
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
21
21
  gem.require_paths = ["lib"]
22
22
 
23
- gem.add_dependency "unicode-display_width", "~> 1.1"
23
+ gem.add_dependency "unicode-display_width", ">= 1.1"
24
24
 
25
- gem.required_ruby_version = "~> 2.0"
25
+ gem.required_ruby_version = ">= 2.0", "< 4.0"
26
26
  end
metadata CHANGED
@@ -1,40 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whirly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Lelis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-06 00:00:00.000000000 Z
11
+ date: 2021-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unicode-display_width
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.1'
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
26
  version: '1.1'
27
27
  description: Simple terminal spinner with support for custom spinners. Includes spinners
28
28
  from npm's cli-spinners.
29
29
  email:
30
- - mail@janlelis.de
30
+ - hi@ruby.consulting
31
31
  executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - ".gitignore"
36
36
  - ".gitmodules"
37
- - ".travis.yml"
38
37
  - CHANGELOG.md
39
38
  - CODE_OF_CONDUCT.md
40
39
  - Gemfile
@@ -68,17 +67,19 @@ require_paths:
68
67
  - lib
69
68
  required_ruby_version: !ruby/object:Gem::Requirement
70
69
  requirements:
71
- - - "~>"
70
+ - - ">="
72
71
  - !ruby/object:Gem::Version
73
72
  version: '2.0'
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.0'
74
76
  required_rubygems_version: !ruby/object:Gem::Requirement
75
77
  requirements:
76
78
  - - ">="
77
79
  - !ruby/object:Gem::Version
78
80
  version: '0'
79
81
  requirements: []
80
- rubyforge_project:
81
- rubygems_version: 2.4.8
82
+ rubygems_version: 3.2.3
82
83
  signing_key:
83
84
  specification_version: 4
84
85
  summary: 'Whirly: The friendly terminal spinner'
data/.travis.yml DELETED
@@ -1,26 +0,0 @@
1
- sudo: false
2
- language: ruby
3
-
4
- script: bundle exec ruby spec/whirly_spec.rb
5
-
6
- rvm:
7
- - 2.3.0
8
- - 2.2
9
- - 2.1
10
- - 2.0
11
- - ruby-head
12
- - rbx-2
13
- - jruby-head
14
- - jruby-9000
15
-
16
- cache:
17
- - bundler
18
-
19
- # matrix:
20
- # fast_finish: true
21
-
22
- matrix:
23
- allow_failures:
24
- - rvm: jruby-head
25
- - rvm: jruby-9000
26
- - rvm: rbx-2