whirly 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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